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)
पर एक इंडेक्स बनाने से फायदा हो सकता है। ।