2011-03-21 6 views
5

मुझे एक वर्चुअल वातावरण के तहत चल रहा एक SQL 2005 डीबी मिला है।प्रदर्शन के लिए SQL क्वेरी के 2 प्रकारों की तुलना करने का सबसे अच्छा तरीका क्या है?

चीजों को सरल बनाने के लिए, मान लें कि मेरे पास दो SQL चयन क्वेरी हैं। वे दोनों एक ही चीज करते हैं। लेकिन मैं प्रदर्शन उद्देश्यों के लिए उनका विश्लेषण करने की कोशिश कर रहा हूं।

आम तौर पर, मैं एक स्थानीय डीबी ऊपर आग चाहते हैं, कुछ डेटा लोड और समय का उपयोग अन्य वेरिएंट के लिए एक संस्करण की तुलना।

लेकिन इस मामले में, के बाद से डीबी बड़ी है और यह एक testbox है, ग्राहक यह एक मेजबान है कि अन्य वी एम के रूप में अच्छी तरह की सेवा कर रहा है पर रखा गया है।

डीबी स्थानीय रूप से नीचे खींचने के लिए बहुत बड़ा है, इसलिए यह बाहर है (कम से कम अब के लिए)।

लेकिन मेरा मुख्य मुद्दा यह है कि जब मैं सर्वर के विरुद्ध क्वेरी चलाता हूं, तो समय पूरे स्थान पर होता है। मैं + सटीक + एक ही क्वेरी 4 बार चला सकता हूं और 7secs, 8 मिनट, 3: 45min और 15min के समय प्राप्त कर सकता हूं।

मेरा पहला विचार सेट सांख्यिकी IO चालू था।

लेकिन, पैदावार मूल रूप से पढ़ सकते हैं और टेबल पर आँकड़े बारे में प्रश्नों, जो, प्रश्नों में बदलाव पर निर्भर करता है (अस्थायी टेबल, विचारों बनाम, बनाम मिलती है, आदि) वास्तव में सही ढंग से तुलना नहीं की जा सकती है, किया जा रहा है, में सिवाय इसके कि कुल।

मैं तो हालांकि सेट सांख्यिकी समय पर की, और सिर्फ CPU समय का उपयोग कर, लेकिन उस पर छूट देने का सभी आईओ है, जो भी एक अच्छा आधार रेखा के लिए नहीं है लगता है।

मेरा प्रश्न है क्या कोई अन्य सांख्यिकीय या प्रदर्शन विश्लेषण तकनीक है जो इस तरह की स्थिति में उपयोगी हो सकती है?

+0

* बहुत * सरल तुलना के रूप में, आप उन्हें शो निष्पादन योजना के साथ एक ही बैच में चला सकते हैं और देख सकते हैं कि कौन सा कुल प्रतिशत का सबसे अधिक हिस्सा लेता है। – adrianbanks

+0

@adrian निष्पादन योजना केवल एक गाइड है। अनुमानित उप-लागत लागत ए बनाम बी अक्सर गलत होती है जब वास्तव में – RichardTheKiwi

+0

@ रिचर्ड किया जाता है: क्या वास्तविक निष्पादन योजना का उपयोग करते समय भी यह सच है? – adrianbanks

उत्तर

1

सांख्यिकी IO जानकारी अभी भी उपयोगी होगी। आप पढ़ने, लिखने और स्कैन की काफी अलग संख्या देख सकते हैं जो यह स्पष्ट कर देगा कि कौन सी क्वेरी बेहतर है।

आप प्रत्येक क्वेरी के लिए निष्पादन योजना की जानकारी भी देख सकते हैं। क्वेरी क्वेरी चलाने के लिए SQL सर्वर अनुमान की आलेखीय प्रस्तुति देखने के लिए आप क्वेरी -> अनुमानित निष्पादन निष्पादन योजना का चयन कर सकते हैं। आप वास्तविक योजना का उपयोग करने के लिए क्वेरी -> वास्तविक निष्पादन योजना भी शामिल कर सकते हैं।

और, आप योजना के पाठ प्रदर्शन को देखने के लिए निष्पादन योजना को शामिल करने के लिए SET SHOWPLAN_TEXT, SET SHOWPLAN_ALL या SET SHOWPLAN_XML का भी उपयोग कर सकते हैं।

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

+0

मैंने ग्राफिकल योजनाओं के साथ काम किया है, लेकिन उन्हें तुलना करते हुए, esp जब मैं तुलना कर रहा हूं, तो एएसपी काफी अलग हैं, ऐसा लगता है कि सेब की तुलना संतरे से की जाती है, साथ ही उन ग्राफिक योजनाओं को काफी बड़ा होने पर उनकी तुलना करना मुश्किल होता है। ShowPlan_Text को देखकर, यह थोड़ा बेहतर काम कर सकता है, हालांकि। इससे पहले नहीं खेला था। मैं उस अनुमानित लागत मूल्य पर और भी देखेंगे। धन्यवाद! – DarinH

+0

मैं बॉब्स को स्वीकार्य उत्तर देने जा रहा हूं, लेकिन मुझे उम्मीद है कि एक और सीधा दृष्टिकोण है। दिन के अंत में, हालांकि, मैं अपनी मशीन में एक टीबी या 2 टीबी ड्राइव स्थापित करने के लिए दबाव डाल रहा हूं, इसलिए मैं स्थानीय रूप से परीक्षण कर सकता हूं और इसके साथ किया जा सकता हूं। – DarinH

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