SQL प्रोफाइलर सर्वर के प्रदर्शन को प्रभावित करता है?


11

मुझे एक समस्या का सामना करना पड़ रहा है जहां एसक्यूएल सर्वर 2008 कुछ उच्च भार के लिए विफल रहता है। मुझे उस लोड केस को खोजने की आवश्यकता है और कोड को अनुकूलित करने की आवश्यकता है ताकि वह लोड को संभाल सके। मैंने इंटरनेट पर पाया है कि एसक्यूएल प्रोफाइलर का उपयोग डेटाबेस इंटरैक्शन को ट्रैक करने के लिए किया जा सकता है जिसे बाद में सटीक बिंदु खोजने के लिए विश्लेषण किया जा सकता है जहां समस्या होती है। मैंने यह भी पाया है कि हम sql प्रोफाइलर कैसे शुरू कर सकते हैं। लेकिन अब मेरा सवाल यह है कि क्या sql प्रोफाइलर शुरू करने से मैं सर्वर के प्रदर्शन को प्रभावित करने जा रहा हूँ?


5
हाँ। यह निर्भर करता है कि आप इसे कैसे और कहां चलाते हैं। सही तरीके से किया गया कुछ प्रतिशत अतिरिक्त भार जितना कम हो सकता है।
मिच गेहूं

3
विस्तारित कार्यक्रम अधिक हल्का विकल्प हो सकता है।
मार्टिन स्मिथ

जवाबों:


10

SQL Server Profiler एक GUI है जो क्लाइंट-साइड के माध्यम से SQL Server Trace का उपयोग करता है। इस प्रकृति के कारण, हाँ, आप संभावित रूप से पर्यावरण के आधार पर हल्के से गंभीर प्रदर्शन प्रभाव देख सकते हैं।

SQL सर्वर प्रोफाइलर मुख्य रूप से सर्वर पर होने वाली त्वरित झलक के लिए अनुकूल है (बशर्ते डेटाबेस सर्वर अतिरिक्त विलंबता को संभाल सकता है)। इसे लंबे समय तक चलाने का इरादा नहीं है। लंबे निशान के लिए, सर्वर-साइड ट्रेस या विस्तारित ईवेंट का उपयोग करें।


+1 बहुत छोटा प्रोफाइलर ट्रेस, कई कारकों के आधार पर, सर्वर को अपंग कर सकता है।
हारून बर्ट्रेंड

3

यदि आप सर्वर साइड ट्रेसिंग का उपयोग करते हैं , तो प्रदर्शन पर प्रभाव कम से कम हो सकता है।


मेरा सर्वर और डेटाबेस एक ही मशीन पर स्थापित हैं। अब अगर मैं "Microsoft SQL प्रबंधन स्टूडियो -> टूल्स-> SQL प्रोफाइलर" के माध्यम से sql प्रोफाइलर शुरू करता हूं, तो प्रदर्शन की कितनी गिरावट की उम्मीद कर सकता हूं और यह किन कारकों पर आधारित है?

यह इस बात पर आधारित है कि आपका सर्वर कितना व्यस्त है, आपके ईवेंट और आपके फ़िल्टरिंग में कितने ईवेंट और कितने कॉलम हैं। फ़िल्टरिंग दोनों दिशाओं में प्रभावित कर सकती है - एक तरह से यह यूआई में वापस आने वाली पंक्तियों की संख्या को कम कर सकती है (वह हिस्सा जो वास्तव में प्रोफाइलर को सर्वर-साइड ट्रेस से अधिक चोट पहुंचाता है), लेकिन दूसरी तरफ अगर आप खराब तरीके से चुने गए हैं फ़िल्टर (जैसे textdata LIKE '%foo%') इसका विपरीत प्रभाव हो सकता है। कुछ जादू की उम्मीद प्रदान करने के लिए बहुत अधिक चर हैं, आप बस इसे आज़माने वाले हैं। आपको वास्तव में एक सर्वर-साइड ट्रेस का उपयोग करना चाहिए।
हारून बर्ट्रेंड

यदि आप मूल तक पहुँचने में सक्षम नहीं हैं, तो इस लिंक का प्रयास करें
मार्क लोपेज

3

पिछले पोस्टर में जो कुछ भी कहा गया है वह सब सही है। प्रोफाइलर एक ऐसा अनुप्रयोग है, जो एक बिंदु पर, DMO का उपयोग करता है और अब ट्रेस ईवेंट्स को कैप्चर करने के लिए SMO का उपयोग करता है। यह केवल एक सर्वर साइड ट्रेस का उपयोग करने की तुलना में ओवरहेड की एक बड़ी मात्रा जोड़ता है।

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

मैं SQL सर्वर वातावरण में सर्वर साइड निशान को चलाने में सक्षम रहा हूं जो प्रति सेकंड 10,000+ लेनदेन की प्रक्रिया करता है। उन्हीं वातावरणों में प्रोइलर का उपयोग करके डेटाबेस का उदाहरण अपने घुटनों तक लाया जाएगा। किसी भी उत्पादन परिवेश में, यदि आपको डेटाबेस गतिविधि का पता लगाने की आवश्यकता है तो हमेशा सर्वर साइड ट्रेस का उपयोग करें। प्रोफाइलर डेटाबेस उदाहरण को मार देगा।


2

हाँ, SQL सर्वर Profiler प्रदर्शन को प्रभावित करता है।

जब आप GUI का उपयोग करते हुए ट्रेस करते हैं, तो सभी ईवेंट समकालिक रूप से संसाधित और फ़िल्टर किए जाते हैं, इसलिए सर्वर लोड, नेटवर्क लेटेंसी, जैसे कारक जो आप एकत्र करते हैं, और यहां तक ​​कि जहां एकत्रित किए गए इवेंट संग्रहीत होते हैं, वे सभी ओवरहेड में योगदान करते हैं।

जैसा कि अन्य उत्तरों ने सुझाव दिया है, GUI के बजाय सर्वर-साइड ट्रेस का उपयोग करना पसंद किया जाता है। हालाँकि, यह विधि पदावनत है , और इसके बजाय विस्तारित घटनाओं का उपयोग किया जाना चाहिए। (नोट: यहां तक ​​कि विस्तारित घटनाओं का उपयोग करते हुए, जो ट्रेस से अधिक हल्के होते हैं, सर्वर पर लोड की अवांछनीय मात्रा को जोड़ना अभी भी संभव है - एक इवेंट सेट करते समय ओवरहेड को कम करने के बारे में सोचने के लिए मेरे दूसरे पैराग्राफ में सूची देखें। सत्र।)

एक भारी-भरकम सर्वर के मामले में, आपको एकत्रित की जा रही जानकारी के बारे में बहुत सावधानी बरतने की आवश्यकता है, क्योंकि माप प्रक्रिया स्वयं ही जांच की जा रही समस्या को प्रभावित कर सकती है।


0

SQL Server Profiler दो चरणों में काम करता है: सबसे पहले आप इसे सभी प्रश्नों को लॉग इन करने के लिए कहते हैं। फिर आप कुछ विशिष्ट लेनदेन चलाते हैं (या बस इसे उत्पादन के खिलाफ लॉग इन करते हैं)। यह एक "टेस्ट लोड" बनाता है। फिर आप परीक्षण लोड का उपयोग करके वास्तविक रूपरेखा (विश्लेषण) करते हैं।

लॉगिंग बहुत महंगी नहीं है, विशेषकर प्रश्नों की लागत की तुलना में।


मेरा सर्वर और डेटाबेस एक ही मशीन पर स्थापित हैं। अब अगर मैं "Microsoft SQL प्रबंधन स्टूडियो -> टूल्स-> SQL प्रोफाइलर" के माध्यम से sql प्रोफाइलर शुरू करता हूं, तो प्रदर्शन की कितनी गिरावट की उम्मीद कर सकता हूं और यह किन कारकों पर आधारित है?
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.