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

इंडेक्स लगाने के बाद रीडिंग कम नहीं हो रही है

आप e.uon desc . द्वारा क्रमित शीर्ष 50 पंक्तियों का चयन कर रहे हैं . एक इंडेक्स जो uon . से शुरू होता है क्वेरी को गति देगा:

create index IX_Empl_Uon on dbo.empl (uon)

अनुक्रमणिका SQL सर्वर को इस अनुक्रमणिका की शीर्ष N पंक्तियों को स्कैन करने की अनुमति देगा। N आपके पेजिनेशन में सबसे बड़ी संख्या है:50 तत्वों के तीसरे पृष्ठ के लिए, N 150 के बराबर है। SQL सर्वर तब क्लस्टर इंडेक्स से पूरी पंक्तियों को पुनः प्राप्त करने के लिए 50 कुंजी लुकअप करता है। जहाँ तक मुझे पता है, यह एक पाठ्यपुस्तक का उदाहरण है जहाँ एक सूचकांक एक बड़ा बदलाव ला सकता है।

सभी क्वेरी ऑप्टिमाइज़र इतने स्मार्ट नहीं होंगे कि यह नोटिस कर सकें कि row_number() over ... as rn where rn between 1 and 50 . के साथ मतलब शीर्ष 50 पंक्तियाँ। लेकिन SQL सर्वर 2012 करता है। यह पहले और लगातार दोनों पेजों के लिए इंडेक्स का उपयोग करता है, जैसे row_number() between 50 and 99



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मान को अल्पविराम से अलग करने के लिए COALESCE फ़ंक्शन का उपयोग करना

  2. SQL सर्वर में संग्रहीत कार्यविधि के लिए टाइमआउट कैसे सेट करें

  3. SQL सर्वर 2008 बैकअप संपीड़न मानक संस्करण

  4. स्ट्रिंग को अलग-अलग कॉलम में कैसे अलग करें?

  5. एक भारी तालिका से डीबी डिजाइन और डेटा पुनर्प्राप्ति