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

डेटाबेस रखरखाव योजना का उपयोग करके SQL सर्वर आँकड़े अपडेट करें

डाटाबेस बैकअप, अखंडता जांच, और प्रदर्शन अनुकूलन डीबीए के मुख्य नियमित कार्य हैं। डेटाबेस बैकअप को प्रबंधित करने और बैकअप की अखंडता सुनिश्चित करने के लिए DBA के लिए क्लाइंट डेटा बहुत महत्वपूर्ण है। इसलिए यदि उत्पादन डेटाबेस में कुछ गलत हो जाता है, तो इसे न्यूनतम डाउनटाइम के साथ पुनर्प्राप्त किया जा सकता है। डेटाबेस अखंडता जाँच भी महत्वपूर्ण है क्योंकि, डेटाबेस भ्रष्टाचार के मामले में, इसे न्यूनतम डाउनटाइम और डेटा हानि के साथ ठीक किया जा सकता है। डेटाबेस प्रदर्शन को प्रबंधित करना भी महत्वपूर्ण है। डेटाबेस प्रदर्शन को प्रबंधित करना कई कार्यों का एक संयोजन है।

  1. संसाधन-गहन प्रश्नों की सूची की पहचान करें और डेवलपर्स को उन्हें फिर से लिखने में मदद करें।
  2. टेबल पर इंडेक्स बनाएं और प्रबंधित करें। साथ ही, यह सुनिश्चित करने के लिए कि वे अच्छी स्थिति में हैं, अनुक्रमणिका डीफ़्रैग्मेन्टेशन करें।
  3. आखिरकार, टेबल के आंकड़ों को मैनेज करना।

अपने पिछले लेख में, मैंने ऑटो क्रिएट स्टैटिस्टिक्स और ऑटो अपडेट स्टैटिस्टिक्स के विषय को कवर किया था और वे प्रदर्शन को बेहतर बनाने में कैसे मदद कर सकते हैं। इस लेख में, मैं यह समझाने जा रहा हूं कि आंकड़ों को अद्यतन करने के लिए रखरखाव योजना कैसे बनाएं और शेड्यूल करें।

सबसे पहले, मैं समझाता हूं कि SQL सर्वर आँकड़े क्या हैं और यह SQL सर्वर के प्रदर्शन को बढ़ाने में कैसे मदद कर सकता है।

SQL सर्वर सांख्यिकी और उनका महत्व

आंकड़े SQL सर्वर क्वेरी ऑप्टिमाइज़र द्वारा उपयोग किए जाने वाले मेटाडेटा हैं, जो डेटा को पुनः प्राप्त करने का सबसे अच्छा तरीका निर्धारित करने में मदद करता है। ऑप्टिमाइज़र डेटा को समझने के लिए आँकड़ों का उपयोग करता है, इसका वितरण, और किसी दी गई क्वेरी की पंक्तियों की संख्या उपलब्ध आँकड़ों से वापस आने की संभावना है। इस जानकारी के आधार पर, यह इष्टतम डेटा एक्सेस पथ तय करता है। यह यह भी निर्धारित करता है कि टेबल स्कैन करना है या इंडेक्स सीक करना है, नेस्टेड लूप जॉइन का उपयोग करना है या हैश जॉइन करना है, आदि।

यदि आंकड़े पुराने हैं, या यदि वे अनुपलब्ध हैं, तो अनुकूलक खराब निष्पादन योजना चुन सकता है, जो क्वेरी के प्रदर्शन को काफी कम कर देता है। SQL सर्वर स्वचालित रूप से आंकड़ों को बनाए रख सकता है और डेटा संशोधनों की ट्रैकिंग के आधार पर उन्हें ताज़ा कर सकता है।

सांख्यिकी को "स्वतः बनाएँ सांख्यिकी" और "स्वतः अद्यतन सांख्यिकी" को सक्षम करके स्वचालित रूप से बनाया और अद्यतन किया जा सकता है। हालांकि, कुछ तालिकाओं के लिए, जैसे कि डेटा वितरण में महत्वपूर्ण परिवर्तनों के अधीन, यह संभव है कि SQL सर्वर स्वचालित आँकड़े अद्यतन क्वेरी प्रदर्शन के लगातार उच्च स्तर को बनाए रखने के लिए अपर्याप्त होगा।

इससे पहले कि मैं आँकड़ों को अद्यतन करने के विभिन्न तरीकों की व्याख्या करूँ, मैं किसी भी तालिका पर बनाए गए आँकड़ों की समीक्षा करने के विभिन्न तरीकों की व्याख्या करूँगा।

आंकड़ों की समीक्षा कैसे करें

हम स्तंभ आँकड़े और अनुक्रमणिका आँकड़े देख सकते हैं

  1. SQL सर्वर प्रबंधन स्टूडियो का उपयोग करना।
  2. सिस्टम संग्रहीत कार्यविधियों और सिस्टम कैटलॉग और गतिशील प्रबंधन दृश्यों का उपयोग करना

SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके आंकड़े देखें

उदाहरण के लिए, मैं [मानव संसाधन] पर बनाए गए आंकड़े देखना चाहता हूं।[कर्मचारी] AdventureWorks2017 . में बनाई गई तालिका डेटाबेस। ऐसा करने के लिए, SQL सर्वर प्रबंधन स्टूडियो लॉन्च करें। फिर AdventureWorks2017 . का विस्तार करें डेटाबेस, विस्तृत करें [HumanResources].[कर्मचारी] टेबल। निम्न चित्र देखें:

सिस्टम संग्रहीत कार्यविधियों और गतिशील प्रबंधन दृश्यों का उपयोग करना

यदि आप SQL सर्वर के पुराने संस्करण का उपयोग कर रहे हैं, तो आप sp_helpstats . का उपयोग कर सकते हैं तालिकाओं के आँकड़ों की समीक्षा करने के लिए प्रणाली प्रक्रिया। sp_helpstats SQL सर्वर या उपयोगकर्ता द्वारा बनाए गए आंकड़े दिखाएगा। यह इंडेक्स द्वारा बनाए गए आंकड़े नहीं दिखाएगा। इसे प्रदर्शित करने के लिए, मैंने User_Statistics_BirthDate . नामक एक आंकड़े बनाए हैं पर [HumanResources].[कर्मचारी] टेबल।

निम्नलिखित उदाहरण है:

AdVENTUREWORKS2017 GOEXEC SP_HELPSTATS 'HUMANRESOURCES.EMPLOYEE' का उपयोग करें

निम्नलिखित आउटपुट है।

आप sys.stats . को क्वेरी करके आँकड़ों की समीक्षा कर सकते हैं सिस्टम कैटलॉग। यह SQL सर्वर द्वारा बनाए गए, इंडेक्स द्वारा बनाए गए और उपयोगकर्ता द्वारा बनाए गए आंकड़ों के बारे में जानकारी प्रदान करता है।

निम्नलिखित क्वेरी निष्पादित करें:

नाम को 'सांख्यिकी नाम' के रूप में चुनें, 'स्वचालित रूप से बनाया गया' के रूप में AUTO_CREATED, SYS से USER_CREATED के रूप में 'उपयोगकर्ता द्वारा बनाया गया'। 

निम्नलिखित आउटपुट है:

अब, आँकड़ों के बारे में विस्तृत जानकारी प्राप्त करने के लिए इस तालिका को अन्य सिस्टम कैटलॉग के साथ जोड़ते हैं। ऐसा करने के लिए, निम्न क्वेरी निष्पादित करें:

चुनें [स्कीमा]। [नाम] + '।' + [ऑब्जेक्ट्स]। [नाम] एएस [TABLE_NAME], [इंडेक्स]। [INDEX_ID] एएस [इंडेक्स आईडी], [स्टेट्स]। [नाम] एएस [स्टेटिस्टिक], स्टफ ((चुनें ',' + [कॉलम]। [नाम] [SYS] से। [STATS_COLUMNS] [STATS_COLUMN] [SYS] में शामिल हों। [COLUMNS] [COLUMNS] [COLUMNS] पर। [STATS_COLUMN]। [OBJECT_ID] जहां [STATS_COLUMN]। [OBJECT_ID] =[STATS]। [OBJECT_ID] और [STATS_COLUMN]। [STATS_ID] =[STATS]। [STATS_ID] [STATS_COLUMN] द्वारा आदेश के लिए [STATS_COLUMN]। PATH('')), 1, 2, '') AS [COLUMNS_IN_STATISTIC] [SYS] से। [STATS] [STATS] [SYS] से जुड़ें। [ऑब्जेक्ट्स]। [SYS]। [इंडेक्स] [ऑब्जेक्ट्स] पर [इंडेक्स] के रूप में। [OBJECT_ID] =[इंडेक्स]। [OBJECT_ID] और [STATS]। [NAME] =[इंडेक्स]। [नाम] जहां [ऑब्जेक्ट्स]। [OBJECT_ID ] =OBJECT_ID(N'HUMANRESOURCES.EMPLOYEE') [STATS] द्वारा आदेश।[USER_CREATED] GO

ऊपर दी गई क्वेरी निम्नलिखित विवरणों को प्रदर्शित करती है

  1. वह तालिका जिस पर आंकड़े बनाए जाते हैं।
  2. इंडेक्स आईडी.
  3. सांख्यिकी का नाम।
  4. आंकड़ों में शामिल कॉलम।

निम्नलिखित आउटपुट है:

अगले भाग में, मैं आँकड़ों को अद्यतन करने के विभिन्न तरीकों के बारे में बताऊँगा।

आंकड़ों के अपडेट के लिए विभिन्न दृष्टिकोण

हम आँकड़ों को निम्नलिखित तरीकों से अपडेट कर सकते हैं:

  1. SQL सर्वर रखरखाव योजना बनाएं।
  2. कस्टम स्क्रिप्ट का उपयोग करके बनाएं।
  3. मैन्युअल रूप से अद्यतन आँकड़े कमांड को एक व्यक्तिगत तालिका पर निष्पादित करें।

सबसे पहले, मैं समझाऊंगा कि कैसे हम आँकड़ों को अद्यतन करने के लिए एक रखरखाव योजना बना सकते हैं।

आंकड़ों को अद्यतन करने के लिए SQL सर्वर रखरखाव योजना बनाएं

अब, इस डेमो में, हम आंकड़ों को अद्यतन करने के लिए एक अद्यतन सांख्यिकी रखरखाव योजना बनाएंगे। रखरखाव योजना निम्नलिखित कार्य करेगी:

पहले एक रखरखाव योजना बनाएं। ऐसा करने के लिए, SQL सर्वर प्रबंधन स्टूडियो खोलें। SQL सर्वर इंस्टेंस का विस्तार करें>> प्रबंधन फ़ोल्डर>> प्रबंधन के तहत, रखरखाव योजना पर राइट-क्लिक करें, और नई रखरखाव योजना चुनें। निम्न चित्र देखें:

नई रखरखाव योजना डायलॉग बॉक्स खुलता है। बॉक्स में, रखरखाव योजना का नाम प्रदान करें, और ठीक क्लिक करें। निम्न चित्र देखें:

रखरखाव योजना डिजाइनर खुलता है। रखरखाव योजना डिज़ाइनर टूलबॉक्स में, डिज़ाइनर विंडो में "अपडेट स्टैटिस्टिक्स टास्क" को ड्रैग और ड्रॉप करें। निम्न चित्र देखें:

अब डबल-क्लिक करें सांख्यिकी कार्य अपडेट करें . अद्यतन सांख्यिकी कार्य डायलॉग बॉक्स खुलता है। संवाद बॉक्स में, विकल्प हैं जिनका उपयोग रखरखाव योजना को अनुकूलित करने के लिए किया जा सकता है। निम्न चित्र देखें:

अद्यतन सांख्यिकी रखरखाव योजना का उपयोग करने पर हम निम्नलिखित विकल्पों को अनुकूलित कर सकते हैं।

  1. किसी विशिष्ट डेटाबेस के सभी ऑब्जेक्ट के आंकड़े अपडेट करें। निम्न छवि देखें:
  2. चयनित डेटाबेस के विशिष्ट ऑब्जेक्ट। आप सभी तालिकाओं और दृश्यों / विशिष्ट तालिकाओं और दृश्यों के आंकड़े अपडेट कर सकते हैं। निम्न छवि देखें:

    यदि हम तालिका या दृश्य चुनते हैं तो SQL चयन में दृश्यों या तालिकाओं का नाम भर देगा संवाद बकस। निम्न छवि देखें:
  3. तीसरा विकल्प है अपडेट करें . हम तालिकाओं/दृश्यों के सभी आँकड़ों को अद्यतन कर सकते हैं, या हम केवल स्तंभ आँकड़े (गैर-अनुक्रमित स्तंभों पर बनाए गए आँकड़े) को अद्यतन करना चुन सकते हैं, या हम केवल अनुक्रमणिका आँकड़े (अनुक्रमणिका द्वारा बनाए गए आँकड़े) चुन सकते हैं। निम्न छवि देखें:
  4. हम किसी भी आंकड़े के स्कैन प्रकार का चयन भी कर सकते हैं। हम पूर्ण स्कैन . चुन सकते हैं या द्वारा नमूना एक निर्दिष्ट प्रतिशत या निर्दिष्ट पंक्तियाँ। निम्न छवि देखें:

अब, जैसा कि मैंने उल्लेख किया है, हम एक रखरखाव कार्य बनाएंगे जो AdventureWorks2017 के भीतर सभी तालिकाओं के आंकड़े अपडेट करेगा। एक पूर्ण स्कैन के साथ डेटाबेस। तो, तदनुसार विकल्प चुनें। एक बार रखरखाव कार्य कॉन्फ़िगर हो जाने पर, यह निम्न जैसा दिखता है:

एक बार रखरखाव कार्य ठीक से कॉन्फ़िगर हो जाने के बाद, अद्यतन आंकड़े संवाद बंद करें। कॉन्फ़िगरेशन के बाद, रखरखाव योजना निम्न की तरह दिखती है:

एक बार मेंटेनेंस प्लान बन जाने के बाद, हम मेंटेनेंस प्लान शेड्यूल करते हैं। ऐसा करने के लिए, विवरण . के विपरीत कैलेंडर आइकन पर क्लिक करें कॉलम। निम्न चित्र देखें:

एक बार जब आप कैलेंडर बटन पर क्लिक करते हैं, तो कार्य शेड्यूल को कॉन्फ़िगर करने के लिए एक डायलॉग बॉक्स खुलता है। निम्न चित्र देखें:

जैसा कि मैंने उल्लेख किया है, हमारी अद्यतन सांख्यिकी रखरखाव योजना प्रत्येक रविवार को सुबह 4:00 बजे निष्पादित होगी। इसलिए हम उसी के अनुसार जॉब शेड्यूल को कॉन्फ़िगर करेंगे। जॉब शेड्यूलिंग सीधा है। एक बार जब आप शेड्यूल कॉन्फ़िगर कर लेते हैं, तो डायलॉग बॉक्स निम्न जैसा दिखता है:

एक बार निष्पादन शेड्यूल कॉन्फ़िगर हो जाने के बाद, संपूर्ण रखरखाव योजना निम्न छवि की तरह दिखती है। रखरखाव योजना सहेजें और विंडो बंद करें।

अब, रखरखाव योजना द्वारा बनाए गए SQL जॉब को निष्पादित करके इस रखरखाव योजना को चलाते हैं। SQL जॉब्स खोलने के लिए, SQL सर्वर एजेंट को विस्तृत करें और नौकरियों expand का विस्तार करें . आप SQL रखरखाव योजना द्वारा बनाए गए SQL कार्य को देख सकते हैं। अब कार्य निष्पादित करने के लिए, साप्ताहिक अद्यतन सांख्यिकी.साप्ताहिक.उपयोजना_1 . पर राइट क्लिक करें और चरण में कार्य प्रारंभ करें . क्लिक करें . निम्न चित्र देखें।

कार्य पूरा होने के बाद, आप निम्न कार्य निष्पादन सफल संवाद बॉक्स देख सकते हैं।

सारांश

इस लेख में, मैंने कवर किया है:

  1. एसक्यूएल सर्वर सांख्यिकी और इसके महत्व की विस्तृत व्याख्या।
  2. आंकड़ों को अपडेट करने के लिए विभिन्न विकल्प।
  3. आंकड़ों को अद्यतन करने के लिए SQL रखरखाव योजना बनाने का एक कार्यशील उदाहरण।

अपने अगले लेख में, मैं आंकड़ों को अद्यतन करने के लिए विभिन्न टी-एसक्यूएल कमांड की व्याख्या करूंगा। इसके अलावा, मैं एक टी-एसक्यूएल स्क्रिप्ट की व्याख्या करूंगा जो टेबल पर डालने/अपडेट/डिलीट होने के बाद हुए डेटा परिवर्तनों की मात्रा के आधार पर आंकड़ों को अपडेट करेगी।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल - पदानुक्रम को कैसे स्टोर और नेविगेट करें?

  2. sql कथनों में वर्ग कोष्ठक [] का क्या उपयोग है?

  3. क्या आपके पास SQL ​​​​में यदि-तब-तर्क तर्क हो सकता है?

  4. CTE त्रुटि:प्रकार एंकर और पुनरावर्ती भाग के बीच मेल नहीं खाते

  5. एकल SQL कनेक्शन में एकाधिक SQL कमांड कैसे चलाएं?