2008-09-24 8 views
43

डेटाबेस ट्यूनिंग सलाहकार यह सिफारिश कर रहा है कि मैं अपने डेटाबेस में आंकड़ों का एक समूह बनाउंगा। मैं एक एसक्यूएल एन 00 बी का कुछ हूं, इसलिए यह पहली बार था जब मैं कभी ऐसे प्राणी में आऊंगा। एमएसडीएन में प्रवेश थोड़ा उलझन में था - क्या कोई यह समझा सकता है कि यह वास्तव में क्या करता है, और यह एक अच्छा विचार क्यों है?एसक्यूएल सर्वर 2005 में "सांख्यिकी बनाएं" क्या करता है?

उत्तर

38

Cost Based Query Optimisation एक तकनीक हिस्टोग्राम और पंक्ति में गिना जाता है का उपयोग करता है heuristically एक प्रश्न योजना को क्रियान्वित की लागत का अनुमान है। जब आप SQL सर्वर पर कोई क्वेरी सबमिट करते हैं, तो यह इसका मूल्यांकन करता है और Query Plans की श्रृंखला उत्पन्न करता है जिसके लिए यह लागत का अनुमान लगाने के लिए हेरिस्टिक का उपयोग करता है। फिर यह सबसे सस्ता क्वेरी योजना का चयन करता है।

क्वेरी ऑप्टिमाइज़र द्वारा क्वेरी प्लान की लागत की गणना करने के लिए सांख्यिकी का उपयोग किया जाता है। यदि आंकड़े गुम हैं या पुराने हैं, तो योजना का अनुमान लगाने के लिए सही डेटा नहीं है। इस मामले में यह क्वेरी योजनाएं उत्पन्न कर सकती है जो मामूली या अत्यधिक उप-इष्टतम हैं।

एसक्यूएल सर्वर (अधिकांश परिस्थितियों में) स्वचालित रूप से सबसे टेबल्स और सूचियों पर आँकड़े उत्पन्न होगा लेकिन आप इन या बल के रिफ्रेश पूरक कर सकते हैं। क्वेरी ट्यूनिंग विज़ार्ड संभवतः कुछ लापता आंकड़े पाए गए हैं या क्वेरी के भीतर पहचान की गई है कि आंकड़ों को जोड़ा जाना चाहिए।

+0

अंतिम पैराग्राफ केवल थोड़ी तकनीकी रूप से सत्य है: SQL सर्वर एक निरंतर इंडेक्स स्वायत्त रूप से नहीं बनाएगा (यानी 'इंडेक्स बनाएं') लेकिन यह "इंडेक्स स्पूल" में कुछ डेटा कैश कर सकता है लेकिन यह डेटा विभिन्न क्वेरी निष्पादन के बीच साझा नहीं किया जाता है । यह क्यूए देखें: http://dba.stackexchange.com/questions/43772/why-dont- डेटाबेस-create-their-own-indexes- स्वचालित रूप से – Dai

3

संक्षेप में, यह अपने डेटाबेस को प्रभावी ढंग से काम करने के लिए तैयार करता है। तैयार आंकड़े लेकर, आपका डेटाबेस जानता है (इसे निष्पादन योजना को समझने से पहले) इसका सबसे प्रभावी मार्ग होने की संभावना क्या है।

2

मूल रूप से सिर्फ तुम हो अनुक्रमण के लिए किस प्रकार के साथ अद्यतन एसक्यूएल रहता है, पंक्ति गिनती, आदि यह एसक्यूएल बेहतर अनुमान में मदद करता है कि कैसे अपने प्रश्नों निष्पादित करने के लिए। अद्यतन आंकड़े रखना एक अच्छी बात है।

2

बोल से ...

एक हिस्टोग्राम और आपूर्ति स्तंभ पर जुड़े घनत्व समूहों (संग्रह) बनाता है या एक टेबल या अनुक्रमित देखने के स्तंभों की स्थापना की। स्ट्रिंग सारांश आंकड़े पर चार, वर्कर, वर्चर (अधिकतम), nchar, nvarchar, nvarchar (अधिकतम), टेक्स्ट, और ntext कॉलम पर बनाए गए आंकड़े भी बनाए गए हैं। क्वेरी अनुकूलक इस सांख्यिकीय सूचना का उपयोग करता है पुन: प्राप्त करने या को अद्यतन करने के लिए डेटा सबसे कारगर योजना का चयन करें। अप करने की तारीख के आँकड़े अनुकूलक सही रूप अलग क्वेरी योजनाओं की लागत का आकलन करने के लिए अनुमति देते हैं, और एक उच्च गुणवत्ता वाले योजना चुनने ।

8

सांख्यिकी का उपयोग यह निर्धारित करने के लिए किया जाता है कि आपकी क्वेरी के लिए एक विशिष्ट अनुक्रमणिका का उपयोग करना है या नहीं। आंकड़ों के बिना, ऑप्टिमाइज़र के पास यह जानने का कोई तरीका नहीं है कि आपकी कितनी पंक्तियां किसी दिए गए शर्त से मेल खाती हैं, जिससे इसे "कई पंक्तियों" केस के लिए अनुकूलित करना पड़ता है, जो कि इष्टतम से कम हो सकता है।

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