2010-01-26 12 views
7

मैं stackoverflow में यह सवाल पूछ रहा हूँ क्योंकि पूछने के लिए अपने सही जगह ...टिप्स और ट्रिक्स क्वेरी अनुकूलन [SQL सर्वर 2005]

के बारे में मैं अपने एक बहुत विशाल विषय जानते शुरू करने के लिए, लेकिन कुछ छोटे हैं, जो वास्तव में आसान हो सकता है ...

यह मेरे जैसे युवा डेवलपर्स क्वेरी अनुकूलन के बारे में पता करने के लिए के लिए उपयोगी हो सकता है ..

कुछ टिप्स और ट्रिक्सके बारे में क्वेरी अनुकूलन एसक्यूएल सर्वर में 2005 ..

उत्तर

2

सवाल यहाँ

  • बचें डेटाप्रकार पूर्वता के आधार पर (जैसे हमेशा बहुत पसंद के लिए, varchar आदि की लंबाई सहित की तरह)

जैसे

...WHERE tinyintcol = @intvalue 
means a conversion of the column and invalidates an index 
...WHERE tinyintcol = @tinyintvalue 
  • बचें कार्यों पर WHERE क्लॉज में कॉलम

जैसे

...WHERE DATEADD(day, 1, MyCol) > GETDATE() 
should be 
...WHERE MyCol > DATEADD(day, -1, GETDATE()) 
  • कवर अनुक्रमित

  • GUIDs: नहीं क्लस्टर अनुक्रमित

1

यदि आपके पास धीमी क्वेरी है तो शुरू करने के लिए सबसे स्पष्ट स्थान यह सुनिश्चित करना है कि यह एक अनुक्रमणिका का उपयोग कर रहा है।

+0

प्रबंधन में होना चाहिए अपने sys व्यवस्थापकों से

  • चेक (CASCADE और TRIGGERS के लिए बाहर घड़ी) स्टूडियो, कमांड ** ** पर showplan_all सेट करें, फिर अपनी क्वेरी चलाएं। वे क्वेरी नहीं चलेंगे, लेकिन निष्पादन योजना को हटा दिया जाएगा। शब्द * स्कैन * के लिए इस आउटपुट में देखें, यह वह जगह है जहां एक इंडेक्स का उपयोग नहीं किया जा रहा है। –

  • 1
    • कोशिश कुल संख्या कम करने के लिए मिलती है की यदि संभव हो तो
    • सी onsider तालिका आकार क्वेरी में उपयोग
    • उपयोग अनुक्रमित के रूप में वे अपने दोस्त हैं
    • प्रकार आप कुंजियों (पूर्णांक int करने के लिए दो varchars की तुलना में काफी आसानी से तुलना है)
    • बचें का उपयोग कर 'के रूप में प्रयोग कर रहे हैं से सावधान रहें के सवालों जहां संभव हो एक समानता पहले
    1

    प्रश्नों के लिए उपयोग करते हुए मूल्य प्राप्त करने की कोशिश की तरह मैं gbn, recursive और smaclell निम्नलिखित करने के लिए जोड़ सकते हैं:

    • सबक्वेरी कम करने के लिए चौकियों बचत
    • उपयोग pragmas चलाता (यदि संभव हो) को निष्क्रिय करने के तुल्यकालिक बंद
    • उपयोग pragmas स्थापित करने के लिए
    • उपयोग pragmas स्मृति में अस्थायी तालिका बनाने सेट करने का प्रयास, मिलती है
    • किसी भी excessing lockings बचने के लिए,
    • लेनदेन
    • में एम्बेड INSERT और DELETE प्रश्नों कभी कभी UPDATE सिर्फ उन्हें फिर से डालने की तुलना में कई रिकॉर्ड के लिए धीमी है। तो सलाह दी जाती है, हटाएँ, की तुलना में प्रोग्राम के रूप में रिकॉर्ड और मौजूदा कुंजी के साथ फिर से डालें अद्यतन करने के लिए है कि डीबी कैश पर
    संबंधित मुद्दे