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

ORDER BY क्लॉज के कारण SQL क्वेरी का खराब प्रदर्शन

ORDER BY परिणामसेट को सॉर्ट करने की आवश्यकता है जो बड़ा होने पर अधिक समय ले सकता है।

इसे अनुकूलित करने के लिए, आपको तालिकाओं को ठीक से अनुक्रमित करने की आवश्यकता हो सकती है।

हालाँकि, अनुक्रमणिका पहुँच पथ में इसकी कमियाँ हैं, इसलिए इसमें अधिक समय भी लग सकता है।

अगर आपकी क्वेरी में इक्विजॉइन के अलावा कुछ और है, या रेंजेड विधेय (जैसे < , > या BETWEEN , या GROUP BY क्लॉज), फिर ORDER BY . के लिए इस्तेमाल किया जाने वाला इंडेक्स अन्य इंडेक्स को इस्तेमाल होने से रोक सकता है।

अगर आप क्वेरी पोस्ट करते हैं, तो शायद मैं आपको बता सकूं कि इसे कैसे ऑप्टिमाइज़ करना है।

अपडेट करें:

क्वेरी को फिर से लिखें:

SELECT  *
FROM    View_Product_Joined j 
LEFT JOIN
        [dbo].[OPR_InventoryRules] irp
ON      irp.ID = j.skuid
        AND irp.InventoryRulesType = 'Product'
LEFT JOIN
        [dbo].[OPR_InventoryRules] irs
ON      irs.ID = j.NodeSiteID
        AND irs.InventoryRulesType = 'Store'
CROSS APPLY
        (
        SELECT  TOP 1 *
        FROM    OPR_PriceLookup pl
        WHERE   pl.siteID = j.NodeSiteID
                AND pl.skuid = j.skuid
                AND pl.RoleID IN (-1, 13)
        ORDER BY
                pl.RoleID desc
        ) pl
WHERE   SiteName = N'EcommerceSite'
        AND Published = 1
        AND DocumentCulture = N'en-GB'
        AND NodeAliasPath LIKE N'/Products/Cats/Computers/Computer-servers/%'
        AND NodeSKUID IS NOT NULL
        AND SKUEnabled = 1
ORDER BY
        NodeOrder ASC

संबंध View_Product_Joined , जैसा कि नाम से पता चलता है, शायद एक दृश्य है।

क्या आप कृपया इसकी परिभाषा पोस्ट कर सकते हैं?

अगर यह इंडेक्स करने योग्य है, तो आपको View_Product_Joined (SiteName, Published, DocumentCulture, SKUEnabled, NodeOrder) पर एक इंडेक्स बनाने से फायदा हो सकता है। ।




  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 सर्वर डेटाबेस में विदेशी कुंजी बाधाओं को फिर से बनाने के लिए स्क्रिप्ट कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 73

  3. SqlCommand.ExecuteScalar रद्द करें

  4. एक बार फिर:संग्रहित प्रक्रिया बनाम टीवी-यूडीएफ

  5. सप्ताहांत डेटा को कार्यदिवसों से अलग तरीके से रोल अप करें