2010-07-20 15 views
16

मैं एक ऐसी ही सवाल जो एक बैकअप की प्रगति की निगरानी करने के लिए कहा देखा की प्रगति की निगरानी/बहाल आपरेशन: Is there a SQL script that I can use to determine the progress of a SQL Server backup or restore process?एसक्यूएल सर्वर में एक SQL क्वेरी

मैं एक ऐसी ही क्वेरी हो, तो जानना चाहूंगा/यह देखने के लिए कि क्वेरी समाप्त होने तक कितनी बार बचा है। उदाहरण के लिए, एक प्रश्न आमतौर पर 5 मिनट का समय बीत चुका है। मैं जानना चाहता हूं कि क्वेरी के निष्पादन के दौरान समाप्त होने तक कितना समय बचा है।

अग्रिम धन्यवाद, रोनी।

+0

हाय रोनी, स्पष्टीकरण के लिए, क्या आप बैकअप/पुनर्स्थापित करने वाली क्वेरी की प्रगति की निगरानी कर रहे हैं? या सामान्य रूप से एक प्रश्न? –

उत्तर

16

यह जानने का कोई तरीका नहीं है कि कितना समय बचा है। एक क्वेरी का रन टाइम वास्तविक क्वेरी से परे कई चीजों पर निर्भर करता है: अन्य प्रश्नों को लॉक/अवरुद्ध करना, संसाधनों का उपभोग करने वाली अन्य प्रक्रियाएं (सीपीयू/डिस्क उपयोग), ऑपरेटिंग सिस्टम, नेटवर्क इत्यादि। यदि आपकी 5 मिनट की क्वेरी चल रही है, तो अभी भी कोई और बड़ी रिपोर्ट निकाल देता है, आपकी क्वेरी अब 5:30 बजे चल सकती है। क्या होगा यदि कोई बड़ी फाइल डाउनलोड करना शुरू कर देता है और सभी नेटवर्क बैंडविड्थ को हॉग करता है? क्या होगा यदि ओएस पृष्ठभूमि में कुछ करने का फैसला करता है, आदि। जब तक सभी पंक्तियां वापस नहीं आती हैं, क्वेरी नहीं की जाती है, लेकिन यह एक परिवर्तनीय समय सीमा में चल सकती है।

+0

दरअसल। कुछ (बुरी तरह से कॉन्फ़िगर/अधिभारित) सिस्टम पर, एक भी गहन क्वेरी एक महत्वपूर्ण तालिका को लॉक कर सकती है - और अचानक, प्रश्न जो आमतौर पर दस मिनट के लिए दूसरे रन के नीचे समाप्त होते हैं। आप क्वेरी के समय देख सकते हैं और अनुमान लगा सकते हैं - "औसतन, यह क्वेरी 5:41 में पूर्ण हो जाती है, यह अब 3:15 के लिए चल रही है", लेकिन यह वही है: अनुमान (अनुमान भी नहीं)। – Piskvor

+1

मैंने 3 डी प्रतिपादन स्क्रीन सेवर उत्पादन डेटाबेस बॉक्स पर चलते देखा है! –

+0

उदाहरण के लिए ओरेकल में, हमारे पास v $ session_longops दृश्य है, जो संचालन की स्थिति प्रदर्शित करता है। http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2092.htm मुझे यकीन है कि SQL सर्वर में कोई समान चीज़ नहीं है? रोनी। –

11

sys.dm_exec_requests कि जानकारी है, तो ऐसा ही कुछ आप प्रगति दे देंगे:

SELECT 
percent_complete 
FROM sys.dm_exec_requests 
--where session_id=51 or command like 'restore%' 
+3

यह क्वेरी केवल तभी उपयोगी है जब आपके पास दृश्य सर्वर की अनुमति है। यदि आप नहीं करते हैं तो आप केवल उस SELECT कथन के परिणाम देखेंगे जो आपने अभी सबमिट किया है, जो थोड़ा बेकार है! यह निर्धारित करने के लिए कि क्या आपके पास अनुमतियां हैं "SELECT * fn_my_permissions (NULL, 'SERVER') से;" - अगर आपको अनुमति_नाम 'दृश्य सर्वर राज्य' के साथ कोई प्रविष्टि दिखाई नहीं दे रही है तो आपके पास अनुमति नहीं है। – samaspin

+10

इसके अलावा, यह जानकारी तभी प्रदान की जाती है जब विशिष्ट आदेश निष्पादित किए जा रहे हों। ये उदाहरण के लिए 'रोलबैक', 'रिकवरी' या 'बैकअप डेटाबेस' हैं। – user35443

4

हाँ आप अनुमान बीता हुआ समय पता जब तक कि वहाँ प्रक्रिया के निष्पादन को प्रभावित करने वाले कुछ अप्रत्याशित स्थिति होगी कर सकते हैं।

Select total_elapsed_time, 
* from sys.dm_exec_sessions where session_id="your Id here" 
10

आप क्या चाहते हैं Live Query Statistics

आप एक बटन एक है कि आप सामान्य प्रश्न योजना देता है के बगल में साथ SSMS का नवीनतम संस्करण में इसे सक्रिय कर सकते हैं:

enter image description here

यह तो आप एक जीवित क्वेरी योजना देता है:

enter image description here

नीचे आप कुल प्रगति देखने में:

enter image description here

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