2010-09-17 11 views
12

मुझे पता है कि SQL प्रश्नों को कैसे लिखना है और मुझे आवश्यक परिणाम मिल सकते हैं। लेकिन कभी-कभी मेरे प्रश्न धीमे होते हैं और मैं पूरी तरह समझ नहीं पा रहा हूं क्यों।मैं एसक्यूएल प्रश्नों को अनुकूलित करने के लिए कैसे सीख सकता हूं

कुशल प्रश्न लिखने और उन प्रश्नों को अनुकूलित करने के लिए कुछ अच्छे संसाधन क्या हैं जिन्हें मैंने पहले ही लिखा है?

+1

इस बारे में तर्कवादी क्या है? –

+2

क्या यह समुदाय विकी नहीं होना चाहिए, जैसे कि "कौन सी पुस्तक सी के लिए पुनर्मूल्यांकन है?" – fuz

+0

क्या आप मुख्य रूप से SQLServer क्वेरी ऑप्टिमाइज़ेशन, या अन्य डीबीएमएस के लिए अनुकूलन में रुचि रखते हैं? तकनीक एसक्यूएल की बोलीभाषाओं के बीच भिन्न होती है। –

उत्तर

20

मैं मुख्य बातें हैं कहेंगे:

  • समझे एसक्यूएल के सेट के आधार पर प्रकृति ऐसी Celko's के रूप में मंच के तटस्थ किताबें पढ़ने से; इससे आपको कर्सर (या अन्य पुनरावृत्तियों के दृष्टिकोण) का उपयोग करने जैसी नौसिखिया गलतियों से बचने में मदद मिलेगी, जहां उनकी आवश्यकता नहीं है।
  • सामान्यीकरण की मूल बातें जानें और कब denormalize; कुशल प्रश्न अच्छी तरह से संगठित डेटा के साथ शुरू करते हैं।
  • समझें कि अनुक्रमणिका कहां उपयोगी हो सकती है और जहां वे नहीं कर सकते; उदाहरण के लिए, समझें कि आपके डेटा की कार्डिनालिटी इंडेक्स दक्षता को कैसे प्रभावित करती है, एसएआरजीबल क्वेरी क्या हैं, और बहु-कॉलम इंडेक्स का उपयोग कब करें।
  • अपने प्लेटफ़ॉर्म के लिए EXPLAIN योजना या उसके समतुल्य का उपयोग कैसे करें; यह देखते हुए कि आपकी क्वेरी कैसे संकलित की जा रही है और संसाधन जो उपभोग कर रहे हैं, आप बाधाओं को बेहतर ढंग से समझेंगे।
  • प्लेटफ़ॉर्म-विशिष्ट विधियों को जानें जैसे अनुक्रमित/भौतिक दृश्य, पूर्ण पाठ अनुक्रमण, और पेजिंग के लिए विधियां और पदानुक्रमित डेटा से निपटना।
+0

+1 जो इसे काफी अच्छी तरह से कवर करता है। –

+0

इंडेक्स पर आपके बिंदु पर, मैं सीखना चाहता हूं कि कवरेज इंडेक्स क्या है। कार्यात्मक और फ़िल्टर/आंशिक अनुक्रमणिका भी जानना उपयोगी हो सकता है, हालांकि वे अस्पष्ट हैं, और व्यापक रूप से समर्थित नहीं हैं। –

0

उन अनुक्रमणिका का उपयोग करें जहां टेबल एक का उपयोग कर सकते हैं, और यदि आपके पास SQL ​​सर्वर है तो क्वेरी पर डेटाबेस ट्यूनिंग सलाहकार भी चलाएं।

2

विषय के बारे में एक उत्कृष्ट पुस्तक: Inside Microsoft SQL Server 2005: Query Tuning and Optimization

+0

प्रत्येक प्रमुख डेटाबेस विक्रेता के पास इस पुस्तक के कुछ समकक्ष हैं, और हां प्रदर्शन ट्यूनिंग एक जटिल विषय है जो इन बड़ी वसा पुस्तकों में से एक से सबसे अच्छी तरह से सीखा जाता है। एएनडी प्रदर्शन ट्यूनिंग बहुत डीबी विशिष्ट है जो एसक्यूएल सर्वर में मदद करता है ओरेकल में नुकसान पहुंचा सकता है। – HLGEM

+0

एचएलजीईएम के साथ सहमत हैं, मैं इस तरह के एक मंच और संस्करण-विशिष्ट पुस्तक की सिफारिश करने में संकोच करूंगा जब कोई डेटाबेस प्लेटफ़ॉर्म निर्दिष्ट नहीं किया गया हो। – RedFilter

6

यह समय हो गया है मैं इसे उपयोग करने के लिए किया था, लेकिन मैं SQL Tuning पाया एक नौकरी मैं कुछ साल पहले था पर काफी उपयोगी हो।

1

MySQL विशिष्ट जानकारी के लिए, संदर्भ मैनुअल के chapter 7 सभी अनुकूलन के बारे में है। § 7.3, विशेष रूप से, MySQL statement optimization को शामिल करता है। PostgreSQL विकी विशेष रूप से उस आरडीबीएमएस के लिए optimizing दस्तावेज करता है। माइक्रोसॉफ्ट के "How To: Optimize SQL Queries" सेवानिवृत्त है; मैं निश्चित नहीं हूं कि कोई हालिया दस्तावेज़ है या नहीं। विभिन्न संस्करणों के लिए ओरेकल के पास query optimization पर कुछ दस्तावेज़ हैं।

संबंधित मुद्दे