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

SQL सर्वर क्वेरी के लिए अधिकतम आकार? खंड में? क्या कोई बेहतर तरीका है

प्रत्येक SQL बैच को बैच आकार सीमा में फिट होना चाहिए:65,536 * नेटवर्क पैकेट आकार।

इसके अलावा, आपकी क्वेरी रनटाइम स्थितियों द्वारा सीमित है। यह आमतौर पर स्टैक आकार से बाहर हो जाएगा क्योंकि x IN (a,b,c) और कुछ नहीं बल्कि x=a OR x=b OR x=c है जो x=a OR (x=b OR (x) के समान एक एक्सप्रेशन ट्री बनाता है। =c)), इसलिए यह बड़ी संख्या में OR के साथ बहुत गहरा हो जाता है। SQL 7 IN में लगभग 10k मानों पर SO से टकराएगा, लेकिन आजकल ढेर बहुत गहरे हैं (x64 के कारण), इसलिए यह बहुत गहराई तक जा सकता है।

अपडेट करें

SQL सर्वर पर सूचियों/सरणी पास करने के विषय पर आपको पहले से ही एरलैंड का आलेख मिल गया है। SQL 2008 के साथ आपके पास टेबल वैल्यूड पैरामीटर्स भी हैं जो आपको एक संपूर्ण डेटाटेबल को सिंगल टेबल टाइप पैरामीटर के रूप में पास करने और उसमें शामिल होने की अनुमति देते हैं।

XML और XPath एक और व्यवहार्य समाधान है:

SELECT ...
FROM Table
JOIN (
   SELECT x.value(N'.',N'uniqueidentifier') as guid
   FROM @values.nodes(N'/guids/guid') t(x)) as guids
 ON Table.guid = guids.guid;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Intel Xeon स्केलेबल प्रोसेसर और SQL सर्वर 2017

  2. समूह द्वारा SQL सर्वर संचयी योग

  3. SQL सर्वर एजेंट जॉब (T-SQL) के लिए जॉब स्टेप अपडेट करें

  4. सबसे धीमी क्वेरी कैसे खोजें

  5. चेक के साथ बाधा जोड़ें और उसके बाद चेक बाधा बनाम बाधा जोड़ें