Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर क्वेरी टाइम आउट कहां क्लॉज पर निर्भर करता है

आप जिस समस्या का सामना कर रहे हैं वह (लगभग निश्चित रूप से) कैश्ड क्वेरी प्लान के कारण है, जो क्वेरी को दिए गए पैरामीटर के कुछ संस्करण के लिए उपयुक्त है, लेकिन दूसरों के लिए नहीं (उर्फ पैरामीटर स्नीफिंग)।

यह एक सामान्य घटना है, और अक्सर पुराने आँकड़ों और/या बुरी तरह से खंडित अनुक्रमणिका द्वारा इसे बदतर बना दिया जाता है।

पहला कदम :सुनिश्चित करें कि आपने अपने सभी अनुक्रमितों का पुनर्निर्माण किया है और गैर-अनुक्रमित स्तंभों के आंकड़े अद्यतित हैं। (साथ ही, सुनिश्चित करें कि आपके क्लाइंट के पास नियमित रूप से शेड्यूल्ड इंडेक्स मेंटेनेंस जॉब है)

exec sp_msforeachtable "DBCC DBREINDEX('?')"
go

exec sp_msforeachtable "UPDATE STATISTICS ? WITH FULLSCAN, COLUMNS"
go

यह विहित संदर्भ है:अनुप्रयोग में धीमा, SSMS में तेज़?

यदि अनुक्रमणिका के पुनर्निर्माण और आँकड़ों को अद्यतन करने के बाद भी समस्या बनी रहती है, तो आपके पास कुछ विकल्प हैं:

  1. डायनामिक SQL का उपयोग करें (लेकिन इसे पहले पढ़ें:The Curse and Blessings of Dynamic SQL)

  2. OPTIMIZE FOR . का उपयोग करें

  3. WITH(RECOMPILE) Use का उपयोग करें




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर का उपयोग कैसे करें ऑलवेजऑन फीचर्स

  2. संदिग्ध मोड में फंसे SQL सर्वर डेटाबेस को प्रभावी ढंग से हल करें

  3. क्या एएनएसआई जॉइन बनाम गैर-एएनएसआई जॉइन क्वेरी अलग-अलग प्रदर्शन करेगी?

  4. एक इकाई फ्रेमवर्क मॉडल बनाना कई डेटाबेस फैलाता है

  5. मैं स्थानीय ड्राइव पर दूरस्थ SQL सर्वर डेटाबेस का बैकअप कैसे ले सकता हूं?