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

पैरामीटरयुक्त क्वेरी गैर-पैरामीटरयुक्त क्वेरी बनाम अत्यधिक धीमी क्वेरी योजना क्यों उत्पन्न करती है

ऐसा प्रतीत होता है कि क्वेरी प्लानर ने शाब्दिक क्वेरी में निर्णय लिया है जो उस जानकारी पर आधारित है जो उसके पास पहले से है। इसमें ऐसे आँकड़े होंगे जिन्हें यह आपके विशिष्ट शाब्दिक में दिए गए डेटा के प्रसार के आधार पर कुशलतापूर्वक क्वेरी कर सकता है।

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

शायद आप यह देखने के लिए अपने डेटाबेस पर डेटाबेस ऑप्टिमाइजेशन टूल्स को आजमाकर चला सकते हैं कि क्या कुछ इंडेक्स यहां आपकी मदद कर सकते हैं?

विशेष रूप से आपकी क्वेरी में, इसे आजमाएं:

declare @p0 int
set @p0 = 1000
select *
from foo
join bar on bar.x = foo.x
join baz on baz.y = foo.y
where foo.x = @p0
OPTION ( OPTIMIZE FOR (@p0 = 1000))

लेकिन मैं यह सुनिश्चित किए बिना ऐसा करने से सावधान रहूंगा कि इस क्वेरी में निहित डेटा नहीं बदलेगा और इस योजना पर आपकी क्वेरी हमेशा अधिक कुशल होगी।



  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. टीएसक्यूएल:स्थानीय समय को यूटीसी में कैसे परिवर्तित करें? (एसक्यूएल सर्वर 2008)

  3. SQL सर्वर आंतरिक:समस्याग्रस्त ऑपरेटर्स पं। मैं - स्कैन

  4. तालिका में कॉलम से पहचान निकालें

  5. गणना (*) बनाम गणना (1) - SQL सर्वर