SQL सर्वर में, sys.dm_os_performance_counters
सिस्टम गतिशील प्रबंधन दृश्य सर्वर द्वारा अनुरक्षित प्रदर्शन काउंटर लौटाता है।
sys.dm_os_performance_counters
. के साथ आप बहुत सी चीजों में से एक कर सकते हैं SQL सर्वर की वर्तमान आवृत्ति में बहिष्कृत सुविधाओं की एक सूची लौटाता है। आप इस सूची का उपयोग यह देखने के लिए भी कर सकते हैं कि SQL सर्वर के प्रारंभ होने के बाद से कितनी बार पदावनत सुविधा का उपयोग किया गया है।
यह संभवतः यह पता लगाने का सबसे तेज़ तरीका है कि क्या आप SQL सर्वर में एक बहिष्कृत सुविधा का उपयोग कर रहे हैं।
दृश्य सर्वर द्वारा बनाए गए प्रति प्रदर्शन काउंटर की एक पंक्ति देता है। SQLServer:Deprecated Features ऑब्जेक्ट पदावनत के रूप में निर्दिष्ट सुविधाओं की निगरानी के लिए एक काउंटर प्रदान करता है। इसका एक cntr_value
है कॉलम, जो एक उपयोग गणना प्रदान करता है जो SQL सर्वर के अंतिम बार शुरू होने के बाद से बहिष्कृत सुविधा का सामना करने की संख्या को सूचीबद्ध करता है।
इसलिए, इस दृश्य के विरुद्ध एक क्वेरी चलाकर, हम सभी पदावनत सुविधाओं को वापस कर सकते हैं और साथ ही यह भी गिन सकते हैं कि SQL सर्वर के पिछली बार प्रारंभ होने के बाद से प्रत्येक का कितनी बार सामना हुआ था।
उदाहरण 1 - SQL सर्वर स्टार्टअप के बाद से सामना की गई सभी अप्रचलित सुविधाओं को वापस करें
इसलिए हम निम्नलिखित क्वेरी का उपयोग उन सभी पदावनत सुविधाओं को खोजने के लिए कर सकते हैं जिनका सामना SQL सर्वर के पिछली बार शुरू होने के बाद से हुआ है, साथ ही प्रत्येक आइटम का सामना करने की संख्या के साथ:
SELECT RTRIM(instance_name) 'Feature', cntr_value 'Usage Count' FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features' AND cntr_value > 0;
परिणाम:
+-----------------------------------+---------------+ | Feature | Usage Count | |-----------------------------------+---------------| | String literals as column aliases | 1 | | TIMESTAMP | 1 | | numbered_procedures | 1 | | sysdatabases | 3 | | sp_db_vardecimal_storage_format | 1 | | XP_API | 2 | +-----------------------------------+---------------+
यहाँ मैंने RTRIM()
. का प्रयोग किया है फ़ंक्शन (आप TRIM()
. का भी उपयोग कर सकते हैं ) सुविधा के दाईं ओर सफेद स्थान को ट्रिम करने के लिए। मैंने ऐसा इसलिए किया क्योंकि instance_name
कॉलम एक nchar(128)
. का उपयोग करता है डेटा प्रकार, जिसके कारण कॉलम को 128 वर्णों तक गद्देदार किया जाता है। व्हॉट्सएप को ट्रिम करके, उदाहरण अब क्षैतिज स्क्रॉलिंग की आवश्यकता के बिना वेबपेज पर फिट हो सकता है।
उदाहरण 2 - नाम से वापसी सुविधाएं
यदि आपके पास कोई विशिष्ट विशेषता है जिसमें आप रुचि रखते हैं, तो आप इसे हमेशा नाम से खोज सकते हैं:
SELECT TRIM(instance_name) 'Feature', cntr_value 'Usage Count' FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features' AND instance_name LIKE '%timestamp%';
परिणाम:
+------------------------------------+---------------+ | Feature | Usage Count | |------------------------------------+---------------| | INSERT NULL into TIMESTAMP columns | 0 | | TIMESTAMP | 1 | +------------------------------------+---------------+
प्रत्येक बहिष्कृत विशेषता के बारे में अधिक विवरण
उपरोक्त विधि यह देखने का एक अच्छा त्वरित तरीका है कि क्या आपके एप्लिकेशन में अभी भी बहिष्कृत सुविधाओं का उपयोग किया जा रहा है। एक नकारात्मक पहलू यह है कि यह इस बारे में बहुत अधिक जानकारी प्रदान नहीं करता है कि इसके बारे में क्या करना है, या यहां तक कि कौन से SQL कथनों में पदावनत सुविधा शामिल है, यह तो छोड़ दें कि इसे किस उपयोगकर्ता ने चलाया था।
आप अधिक जानकारी वापस करने के लिए विस्तारित ईवेंट सत्रों का उपयोग कर सकते हैं, जैसे कि आपत्तिजनक SQL कथन, इसे चलाने वाला उपयोगकर्ता, इसे चलाने का समय, और बहुत कुछ। आप इसे एक लॉग फ़ाइल में भी कैप्चर कर सकते हैं ताकि आप इसे बाद में संदर्भित कर सकें। उदाहरण के लिए SQL सर्वर इंस्टेंस में उपयोग की जा रही बहिष्कृत सुविधाओं को लॉग करने के लिए विस्तारित ईवेंट का उपयोग करना देखें।
प्रत्येक पदावनत आइटम से निपटने के तरीके के बारे में अनुशंसाओं के लिए Microsoft का आलेख SQL Server 2017 में बहिष्कृत डेटाबेस इंजन सुविधाएँ भी देखें। वह सूची बिल्कुल SQL सर्वर 2016 के समान है।