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

JDBC ड्राइवर का उपयोग करके SQL सर्वर में डिफ़ॉल्ट पंक्ति प्रीफ़ेच सेट करें

पंक्ति लाने का आकार निर्धारित करने के सामान्य तरीके हैं:

  1. java.sql.Connection . के माध्यम से विक्रेता कार्यान्वयन वर्ग कस्टम विधि (उदा. OracleConnection.setDefaultRowPrefetch )
  2. के माध्यम से java.sql.Statement.setFetchSize(int) :ड्राइवर को सभी ResultSets . के लिए पंक्ति लाने के आकार के बारे में संकेत देता है इस Statement से प्राप्त . यह विधि PreparedStatement . द्वारा इनहेरिट की गई है और CallableStatement . अधिकांश JDBC ड्राइवर इसका समर्थन करते हैं।
  3. के माध्यम से java.sql.ResultSet.setFetchSize(int) :यह सब ResultSet . के लिए पंक्ति लाने के आकार के बारे में ड्राइवर को संकेत देता है .

MS SQL सर्वर JDBC ड्राइवर इनमें से किसी भी तरीके का समर्थन नहीं करता:

  1. MSSQL ड्राइवर के पास ऐसी कोई विधि नहीं है।
  2. दुर्भाग्य से, जबकि अधिकांश ड्राइवर संकेत का सम्मान करते हैं, MSSQL ड्राइवर नहीं करता है। तो आपके लिए उपयोगी नहीं है। देखें Statement.setFetchSize(nSize) मेथड वास्तव में क्या करता है SQL सर्वर JDBC ड्राइवर में करते हैं?
  3. Statement जैसी ही समस्या ।

डिफ़ॉल्ट रूप से यह सभी को पुनः प्राप्त करता है डेटाबेस से पंक्तियाँ जब तक आप JDBC ड्राइवर में कर्सर प्रकार निर्दिष्ट नहीं करते हैं। MSSQL ड्राइवर सामान्य तरीकों का उपयोग करके सीधे फ़ेच आकार को नियंत्रित नहीं कर सकता है।

समाधान:

  • अपना Statement कास्ट करें करने के लिए SQLServerStatement और विधि का उपयोग करें setMaxRows(int) . उन्होंने इसे मानक विधि Steve Ballmer केवल जानता है;^)
  • एक कर्सर प्रकार के साथ अपना ड्राइवर बनाएं। कर्सर के लिए डिफ़ॉल्ट फ़ेच आकार 1 है। Connection सेट करें स्ट्रिंग गुण selectMethod=cursor . वैकल्पिक रूप से, आप Statement बना सकते हैं com.microsoft.sqlserver.jdbc.SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY के साथ केवल-अग्रेषित, केवल-पढ़ने के लिए पहुंच के लिए स्क्रॉल योग्यता, और फिर setFetchSize . का उपयोग करें प्रदर्शन को ट्यून करने की विधि। http://technet.microsoft.com/en -us/लाइब्रेरी/aa342344%28SQL.90%29.aspx
  • लौटाई गई पंक्तियों की संख्या को सीमित करने के लिए (मालिकाना) SQL का उपयोग करें (फ़ेच आकार सेट करने के समान नहीं ):SET ROWCOUNT या SELECT TOP N
  • खुले स्रोत पर स्विच करें jTDS ड्राइवर, विशेष रूप से SQL सर्वर ड्राइवर की समस्याओं को दूर करने के लिए बनाया गया है। यह एक बेहतर ड्राइवर है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक अत्यंत बड़ी तालिका का सामान्यीकरण

  2. SQL सर्वर 2008 प्रबंधन स्टूडियो Intellisense क्यों काम नहीं कर रहा है?

  3. COS () SQL सर्वर में उदाहरण

  4. इकाई डेटा ढांचे से ट्रिगर के बजाय तालिका में डालने पर त्रुटि

  5. एंटिटी फ्रेमवर्क/लिंक टू एसक्यूएल:छोड़ें और लें