Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में सांख्यिकी प्रोफ़ाइल क्या है?

SQL सर्वर में, आप SET STATISTICS PROFILE . का उपयोग कर सकते हैं टी-एसक्यूएल स्टेटमेंट के लिए प्रोफाइल जानकारी प्रदर्शित करने के लिए स्टेटमेंट।

STATISTICS PROFILE तदर्थ प्रश्नों, विचारों और संग्रहीत प्रक्रियाओं के लिए काम करता है।

जब STATISTICS PROFILE ON पर सेट है , प्रत्येक निष्पादित क्वेरी अपना नियमित परिणाम सेट लौटाती है, उसके बाद एक अतिरिक्त परिणाम सेट होता है जो क्वेरी निष्पादन की एक प्रोफ़ाइल दिखाता है।

उदाहरण

प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है।

SET STATISTICS PROFILE ON;
GO

SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO

परिणाम:

यह वही कॉलम लौटाता है जो SHOWPLAN_ALL रिटर्न प्लस दो अतिरिक्त (पंक्तियां और निष्पादित कॉलम)।

वह स्क्रीनशॉट तब लिया गया था जब मैंने Azure डेटा स्टूडियो में उस कथन को चलाया था।

यहाँ एक और सरल उदाहरण है, इस बार मैं mssql-cli (कमांड लाइन इंटरफ़ेस) में एक स्टेटमेंट चलाता हूँ।

SET STATISTICS PROFILE ON;
GO

SELECT * FROM Cats;
GO

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

Commands completed successfully.
+---------+-----------+
| CatId   | CatName   |
|---------+-----------|
| 1       | Meow      |
| 2       | Fluffy    |
| 3       | Scratch   |
+---------+-----------+
(3 rows affected)
-[ RECORD 1 ]-------------------------
Rows               | 3
Executes           | 1
StmtText           | SELECT * FROM Cats
StmtId             | 1
NodeId             | 1
Parent             | 0
PhysicalOp         | NULL
LogicalOp          | NULL
Argument           | NULL
DefinedValues      | NULL
EstimateRows       | 3
EstimateIO         | NULL
EstimateCPU        | NULL
AvgRowSize         | NULL
TotalSubtreeCost   | 0.0032853
OutputList         | NULL
Warnings           | NULL
Type               | SELECT
Parallel           | 0
EstimateExecutions | NULL
-[ RECORD 2 ]-------------------------
Rows               | 3
Executes           | 1
StmtText           |   |--Clustered Index Scan(OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F]))
StmtId             | 1
NodeId             | 2
Parent             | 1
PhysicalOp         | Clustered Index Scan
LogicalOp          | Clustered Index Scan
Argument           | OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F])
DefinedValues      | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName]
EstimateRows       | 3
EstimateIO         | 0.003125
EstimateCPU        | 0.0001603
AvgRowSize         | 142
TotalSubtreeCost   | 0.0032853
OutputList         | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName]
Warnings           | NULL
Type               | PLAN_ROW
Parallel           | 0
EstimateExecutions | 1
(2 rows affected)
Commands completed successfully.

इसे कैसे बंद करें

STATISTICS PROFILE को चालू करने के लिए बंद करें, बस OFF . का उपयोग करके इसे फिर से चलाएं ON . के बजाय :

SET STATISTICS PROFILE OFF;
GO

क्या STATISTICS PROFILE है बहिष्कृत?

हालांकि वर्तमान दस्तावेज़ में इसका कोई उल्लेख नहीं है, SET STATISTICS PROFILE ऐसा प्रतीत होता है कि भविष्य के शोप्लान संस्करणों में बहिष्करण के लिए शेड्यूल किया गया है।

इस पुराने MSDN लेख के अनुसार, SET STATISTICS PROFILE भविष्य के शोप्लान संस्करणों में बहिष्करण के लिए शेड्यूल किया गया है, और यह अनुशंसा की जाती है कि आप SET STATISTICS XML का उपयोग करें। इसके बजाय।

साथ ही, SET STATISTICS XML के लिए वर्तमान दस्तावेज़ीकरण इसका समर्थन करता है:

<ब्लॉकक्वॉट क्लास ="डब्ल्यूपी-ब्लॉक-कोट">

SET Statistics PROFILE और SET Statistics XML एक दूसरे के समकक्ष हैं। पूर्व पाठ्य उत्पादन का उत्पादन करता है; बाद वाला एक्सएमएल आउटपुट पैदा करता है। SQL सर्वर के भविष्य के संस्करणों में, नई क्वेरी निष्पादन योजना की जानकारी केवल SET STATISTICS XML स्टेटमेंट के माध्यम से प्रदर्शित की जाएगी, न कि SET STATISTICS PROFILE स्टेटमेंट के माध्यम से।

इसलिए, यह संभवतः SET STATISTICS XML . का उपयोग करने के लिए भुगतान करता है SET STATISTICS PROFILE . के बजाय जहां संभव हो।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlConnection.Close () स्टेटमेंट का उपयोग करके अंदर

  2. SQL सर्वर में FILEGROUPPROPERTY () का उपयोग कैसे करें

  3. SQL सर्वर सम्मिलित उदाहरण

  4. SQL सर्वर:दो प्रश्नों के साथ UNION का उपयोग कैसे करें जिसमें दोनों का एक खंड है?

  5. SQL सर्वर 2019 (ज्ञात बग) में मूल रूप से संकलित संग्रहीत प्रक्रिया को निष्पादित करते समय "आंतरिक कनेक्शन घातक त्रुटि"