SQL सर्वर प्रबंधन स्टूडियो, मिलीसेकंड के लिए निष्पादन समय नीचे कैसे प्राप्त करें


220

जब मैं SSMS में एक बैच (उदाहरण के लिए, कोई क्वेरी करता हूं) सबमिट करता हूं, तो मुझे स्टेटस बार में निष्पादित होने में लगने वाला समय दिखाई देता है। क्या मिलीसेकंड रिज़ॉल्यूशन के साथ क्वेरी समय दिखाने के लिए SSMS को कॉन्फ़िगर करना संभव है?

यहां वह बार है, जिसके बारे में मैं बात कर रहा हूं, जो कि लाल रंग में बांटा गया है।

यहां छवि विवरण दर्ज करें


3
वास्तव में आपके प्रश्न का उत्तर नहीं दे रहा है, लेकिन आप अपनी क्वेरी की अवधि की जांच करने के लिए SQL Server Profiler (लॉगिंग टूल) का उपयोग कर सकते हैं। अवधि को मिलीसेकंड में मापा जाता है।
AGuyCalledGerald

जवाबों:


66

मैं इसके साथ संघर्ष कर रहा था जब तक कि मुझे यह नहीं मिला ...

http://blog.sqlauthority.com/2009/10/01/sql-server-sql-server-management-studio-and-client-statistics/

इसके अलावा, यदि आप गुण विंडो खोलते हैं, तो आपको कुछ जादुई "कनेक्शन बीता हुआ समय" मिल सकता है जो आपको कुछ निष्पादन समय दे सकता है ... आशा है कि यह आपको मिल सकता है ...


18
गुण विंडो के बारे में हिस्सा वास्तव में इस धागे का जवाब है। "बीता हुआ समय" वहाँ बैठकर आपको घूर रहा है।
एरिक

और मैं अब इस उत्तर को स्वीकृत उत्तर के रूप में स्थापित कर रहा हूं, क्योंकि यह सबसे सही है।
माइकल गोल्डस्मिन

363

आप यह करना चाहते हैं:

set statistics time on

-- your query

set statistics time off

यह आपके संदेश विंडो में कुछ इस तरह दिखने वाला आउटपुट होगा:

SQL सर्वर निष्पादन समय: CPU समय = 6 ms, बीता समय = 6 ms।


1
लेकिन यह संदेश विंडो में समय डालता है, जिसका अर्थ है कि मुझे क्वेरी करने के बाद इसे मैन्युअल रूप से फ्लिप करना होगा। इसके अलावा, परिणाम समझ में नहीं आते हैं, उदाहरण के लिए: सीपीयू समय = 1357 एमएस, बीता हुआ समय = 169 एमएस। हाइपरथ्रेडिंग (यानी, 16 आभासी) के साथ मेरे पास 8 कोर होने पर भी यह कैसे जुड़ता है?
माइकल गोल्डसेन

2
@MichaelGoldshteyn के रूप में क्यों अपने CPU समय अधिक है के लिए, यह है क्योंकि आप एक बहु-कोर या हाइपरथ्रेडेड CPU है।

25
@ मिचेलगॉल्डशाइन 1357/8 = 169.625। संयोग?
दान जे

3
@DJJ, DB स्मृति से सब कुछ नहीं करता है। अक्सर I / O शामिल होता है और I / O का अर्थ है अधिक बीता हुआ समय।
माइकल गोल्डस्मीन

9
@binki आप सही हैं कि मेरी 1,555 दिन पुरानी टिप्पणी गलत थी।
बेनिज़ी

125

निम्नलिखित में से एक करके ग्राहक सांख्यिकी चालू करें :

  • मेनू: क्वेरी> ग्राहक सांख्यिकी शामिल करें
  • टूलबार: बटन पर क्लिक करें (वास्तविक निष्पादन समय शामिल करने के लिए)
  • कीबोर्ड: Shift-Alt-S

फिर आपको एक नया टैब मिलता है जो पिछले 10 एक्सोशंस (प्लस औसत!) के लिए (ऊपर) के लिए टाइमिंग, आईओ डेटा और रोउंको आदि रिकॉर्ड करता है।

यहां छवि विवरण दर्ज करें


यह Nov'2012 से @Yagagine First के उत्तर के समान है। उपरोक्त उत्तर देखें ...
बोगदान बोगदानोव

उस समय उस साइट (विडंबना) में SQL त्रुटि थी, इसलिए मैंने Google कैश से मुख्य जानकारी निकाली और एक नए उत्तर के रूप में पोस्ट किया। मुझे क्रेडिट चोरी करने का मतलब नहीं था और शायद मुझे मूल उत्तर को संपादित करना चाहिए था।
निक जीपी

वास्तव में, ऐसा लगता है कि मेरे पास प्रश्नों को संपादित करने के लिए पर्याप्त प्रतिनिधि नहीं हैं, इसलिए शायद मैंने ऐसा नहीं किया।
NickG

3
FYI करें समय सांख्यिकी के लिए इकाइयां मिलीसेकंड में हैं: brentozar.com/archive/2012/12/…
congusbongus

17

अपनी खरीद में निष्पादन समय को एक चर के रूप में प्राप्त करने के लिए:

DECLARE @EndTime datetime
DECLARE @StartTime datetime 
SELECT @StartTime=GETDATE() 

-- Write Your Query


SELECT @EndTime=GETDATE()

--This will return execution time of your query
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in millisecs] 

और यह देखें

मापने की क्वेरी का प्रदर्शन: "निष्पादन योजना क्वेरी की लागत" बनाम "समय लिया गया"


1
दिनांकित NS नैनोसेकंड का प्रतिनिधित्व करता है, मिलीसेकंड के लिए MS
मिलान Matkajka

12

मैं एक ही चीज़ के बाद था और निम्नलिखित लिंक पर ठोकर खाई थी जो शानदार था:

http://www.sqlserver.info/management-studio/show-query-execution-time/

यह प्रदर्शन को मापने के तीन अलग-अलग तरीकों को दर्शाता है। सभी अपनी-अपनी ताकत के लिए अच्छे हैं। जो मैंने चुना था वह इस प्रकार था:


DECLARE @ Time1 डेटाटाइम

DECLARE @ Time2 डेटाटाइम

SET @ Time1 = GETDATE ()

- यहां क्वेरी डालें

SET @ Time2 = GETDATE ()

चयनित दिनांकित (MILLISECOND, @ Time1, @ Time2) के रूप में बीत चुका है


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

उम्मीद है की यह मदद करेगा।


मैंने पाया कि अनिच्छुक, कभी-कभी समय दिखाता है और कभी-कभी सिर्फ 0.
आरएमटी

2

मैं सूचना पट्टी के विस्तार के बारे में नहीं जानता।

लेकिन आप "संदेश" टैब में दिखाए जाने वाले सभी प्रश्नों के लिए डिफ़ॉल्ट के रूप में निर्धारित समय प्राप्त कर सकते हैं।

जब एक क्वेरी विंडो में, क्वेरी मेनू आइटम पर जाएं, "क्वेरी विकल्प" चुनें, फिर "निष्पादन" समूह में "उन्नत" का चयन करें और "सेट सांख्यिकी समय" / "सेट आँकड़े IO" चेक बॉक्स की जांच करें। ये मान तब प्रत्येक क्वेरी के लिए संदेश क्षेत्र में सेट आँकड़ों में और बंद करने के लिए याद रखने के लिए बिना दिखाएगा।

आप किसी भी समय ग्राहक आंकड़ों को सक्षम करने के लिए Shift + Alt + S का उपयोग कर सकते हैं


0

आप इस कोड को आज़मा सकते हैं:

USE AdventureWorks2012;
GO
SET STATISTICS TIME ON;
GO
SELECT ProductID, StartDate, EndDate, StandardCost 
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET STATISTICS TIME OFF;
GO
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.