SQL सर्वर प्रोफाइलर में "ऑडिट लॉगआउट" क्या है?


91

मैं एक डेटा आयात (C # / Linq का उपयोग करके) चला रहा हूं, और स्वाभाविक रूप से मैं अपने प्रश्नों को यथासंभव अनुकूलित करने की कोशिश कर रहा हूं। इसके लिए मैं एसक्यूएल सर्वर प्रोफाइलर का उपयोग करके डीबी पर एक ट्रेस चला रहा हूं, मेरे एसक्यूएल लॉगिन नाम द्वारा फ़िल्टर किए गए मेरे ट्रेस के साथ (यह एक ऐसा नाम है जो विशिष्ट रूप से मेरे डेटा आयात प्रक्रिया के लिए जिम्मेदार ठहराया जा सकता है)।

अजीब तरह से, मेरे अधिकांश एसक्यूएल कथन वास्तव में त्वरित हैं :) - बहुत कम प्रश्न 1ms के निशान पर भी टूट जाते हैं। लेकिन मेरे सभी प्रश्नों के बीच में कई पंक्तियाँ हैं जहाँ EventClass "ऑडिट लॉगिन" या "ऑडिट लॉगआउट" है - और "ऑडिट लॉगआउट" की अवधि एक मिनट तक हो सकती है!

क्या इस तथ्य से कुछ लेना-देना है कि मैं अपने आयात में लेनदेन का उपयोग कर रहा हूं? यदि हां, तो क्या यह पता लगाने का कोई तरीका है कि कौन से बड़े-बड़े प्रश्न हैं, ताकि मैं उन्हें साफ कर सकूं?


संबं
धत लं क

जवाबों:


81

अगर मुझे सही याद है, तो ऑडिट लॉगआउट की अवधि उस समय की है जब कनेक्शन खुला था। उदा। कमांड की गति से कोई लेना-देना नहीं है - बस लॉगिन होने के समय की राशि 'लॉग इन' थी।


9
दिलचस्प है, धन्यवाद! लेकिन तब रीड्स की संख्या इतनी अधिक (~ 400,000) क्यों है जब "लॉगिन" और "लॉगआउट" के बीच के प्रश्नों की संख्या केवल 56 है?
शाऊल बेहार

यह लॉगिन से लॉगआउट तक एमएस की संख्या है। उपयोग किए गए कनेक्शन के भीतर प्रश्नों की वास्तविक मात्रा नहीं है। 400 000ms लगभग 7 मिनट है। सीपीयू को देखें, सीपीयू और / या डिस्क के उपयोग पर उच्चतर प्रश्नों को खोजने और जानने के लिए कॉलम लिखते हैं - दोनों प्रदर्शन को मारते हैं।
थिएस

मुझे क्षमा करें, क्या आपका मतलब है कि Readsसमय मापन के लिए प्रतिक्रियाएं?
जॉनी_ड

1
लॉगआउट "रीड्स" का मूल्य वास्तव में खान पर बहुत अधिक लगता है, यह देखते हुए कि इसके और लॉगिन के बीच सूचीबद्ध 3 रीड्स के साथ केवल एक ही ऑपरेशन है।
ट्राइंको

1
यह ध्यान दिया जाना चाहिए कि Readsकॉलम प्रश्नों द्वारा दी गई पंक्तियों का प्रतिनिधित्व नहीं करता है, लेकिन # तार्किक डिस्क का # पढ़ता है। एक क्वेरी जो कुछ भी वापस नहीं करती है वह 1 मिलियन रिकॉर्ड की एक पूरी तालिका को स्कैन कर सकती है जो कुछ भी नहीं लौटती है जो बहुत बड़ी # रीड्स उत्पन्न करेगी। इसलिए # पठन वास्तव में स्वाभाविक रूप से # प्रश्नों के साथ संबंधित नहीं है।
पेस

12

लॉगिन / लॉगआउट ईवेंट सेटिंग अप / फाड़ से संबंधित हैं। IIRC वह समय है, जो 'लॉग इन टाइम' के रूप में था, अन्य लॉग ईवेंट के साथ प्रोसेसिंग अवधि के विपरीत।

सामान्य तौर पर, कोई भी इन घटनाओं को छुपाता है जब तक कि आपको संदेह नहीं है कि कनेक्शन पूल प्रबंधन आदि के साथ कोई समस्या है।

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


क्या यह निरीक्षण करना संभव है कि "अधिक विस्तार से स्थापित / फाड़"? कृपया संबंधित प्रश्न देखें: stackoverflow.com/questions/44920375/…
स्टीफन

3

ऑडिट लॉगआउट इवेंट क्लास इंगित करता है कि उपयोगकर्ता Microsoft SQL सर्वर से लॉग आउट (लॉग ऑफ) हो गया है। इस वर्ग की घटनाओं को नए कनेक्शन या कनेक्शन पूल से पुन: उपयोग किए जाने वाले कनेक्शन द्वारा निकाल दिया जाता है।

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

अधिक जानकारी के लिए मैं https://msdn.microsoft.com/en-us/library/ms175827.aspx :) सुझाव देता हूं


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

2

इस उत्तर के रूप में भी ध्यान देने योग्य बात यह है कि ऑडिट लॉग इन / लॉगआउट का अर्थ केवल यह हो सकता है कि कनेक्शन का पुन: उपयोग किया जा रहा है / कनेक्शन पूल में वापस आ गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.