शीर्ष 3 प्रदर्शन समस्याएँ जो आप अपने SQL सर्वर से सामना करते हैं?


15

मैं आइंडहॉवन में फोंटी विश्वविद्यालय से एक छात्र हूं, और मैं वर्तमान में एक एसक्यूएल सर्वर टूल के विकास में मदद करने के लिए साक्षात्कार की एक श्रृंखला ले रहा हूं और मैं क्षेत्र के विशेषज्ञों से प्रतिक्रिया प्राप्त करना चाहूंगा।

मेरा एक प्रश्न है:

शीर्ष 3 प्रदर्शन मुद्दे क्या हैं जो आप अपने SQL सर्वर इंस्टेंस के साथ सामना करते हैं और आप उन समस्याओं की पहचान कैसे करते हैं?

विशेष रूप से मुझे लिपियों में दिलचस्पी है और इसे मापने के लिए उपयोग किए जाने वाले उपकरण।

जवाबों:


22

मेरे सिर के ऊपर से - शीर्ष 3 क्वेरी समस्याएं:

  • सम्यक रूपांतरण
  • खराब अनुक्रमण रणनीतियों (बहुत अधिक या पर्याप्त या गलत प्रकार नहीं)
  • केवल उन फ़ील्ड्स का नामकरण करने के बजाय, जो आपके लिए आवश्यक हैं, का चयन करें

सर्वर-स्तरीय कॉन्फ़िगरेशन समस्याओं, डेटाबेस स्कीमा समस्याओं, हार्डवेयर समस्याओं आदि के आसपास बहुत कुछ है, मैंने इस प्रकार की समस्याओं की तलाश करने वाले सर्वरों का शीघ्र विश्लेषण करने के लिए एक स्क्रिप्ट लिखी है:

http://www.brentozar.com/blitz/


15
  • खराब डिजाइन / प्रश्न / अनुक्रमण
  • सही हार्डवेयर खरीदने की अनुमति नहीं है
  • Braindead ORMs (उर्फ "SQL मर चुका है")

14

शीर्ष 3 नहीं, लेकिन मुझे लगा कि मैं अभी तक उल्लेखित चीजों का उल्लेख नहीं करूंगा:

  1. डीबीए को प्रदान किए गए विवरणों / पारदर्शिता के साथ एसक्यूएल को वर्चुअल मशीनों पर रखा जाता है। होस्ट सर्वर गतिशील रूप से अतिथि मशीनों की सेटिंग्स को बदल देगा, जिससे प्रदर्शन में गिरावट आ सकती है और डीबीए को बिना सुराग के छोड़ दिया जा सकता है। हाइपरट्रेडिंग, नेटवर्क टीमिंग, और मेमोरी बैलूनिंग जैसी विशेषताएं प्रदर्शन काउंटरों को मॉनिटर करने के लिए एक चलती लक्ष्य बनाती हैं।Tools: sysmon/perfmon, DMVs, maintaining a history of performance counters in tables.
  2. इसी तरह, DBA को प्रदान की गई SAN सेटिंग्स पर कोई पारदर्शिता / सत्यता नहीं है। मेरे पास अलग-अलग रीड / राइट कैश प्राथमिकताएं हैं, लेकिन उन्होंने बताया कि वे सभी समान थीं।Tools: IO DMVs, SQLIO.
  3. बैड डीबी आर्किटेक्चर: जैसे डेटा और लॉग फाइल का साइज़िंग और प्लेसमेंट और टेम्पर्डब। समानता का अनुचित उपयोग। एक ही भौतिक डिस्क पर कई फाइलग्रुप बनाना।Tools: experience.

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


10
  • उचित अनुक्रमित की कमी है
  • प्रोडक्शनकोड में नोलॉक के साथ प्रदर्शन के मुद्दों को हल करने का प्रयास करने के लिए किसी का उपयोग। विशेष रूप से बुरा अगर कोड तालिकाओं में डेटा को संशोधित करता है
  • अधिक से अधिक समय पर आवश्यकता से अधिक डेटा का चयन करने के लिए आवेदन शून्य है। बाइनरी होने के बाद भी यदि आप केवल एक ही टेबल का टेक्सडाटा चाहते हैं तो बाइनरी लौटाया जाता है।

2
नोलॉक उल्लेख के लिए +1। प्रत्येक डेवलपर जो मुझे पता है कि इसका उपयोग करना एक अच्छा विचार है क्योंकि "यह रीडिंग में टेबल को लॉक नहीं करता है"
23

क्या आपको इससे नफरत नहीं है जब आप के एक ग्राहक ने मल्टीमनी के लिए बहुत बड़ी प्रणाली खरीदी है और पहली बार जब आप इसे देखते हैं तो वे हर जगह नैपकिन के साथ उपयोग करते हैं? और फिर ...: - /
मार्टिन Sjöberg

9

प्रश्न जो बुरी तरह से पैमाने पर हैं (सभी ग्राहकों के लिए एक्स वर्षों के लिए सभी ऑर्डर प्राप्त करें, जिसमें सभी ऑर्डरलाइन शामिल हैं जिनमें सारांशित डेटा और अन्य औसत डेटा बुरी तरह से गणना की गई है)

बस एक बार में सब कुछ क्वेरी कर रहा है।

टेबल्स जिनमें 'डिस्क्रिप् ट' वर्चर / टेक्स्ट फ़ील्ड हैं, जिन्हें हर क्वेरी के माध्यम से खोजा जाना है।


7
  • अनुचित रखरखाव, यानी कोई इंडेक्स रीग्रॉ, आँकड़े, कोई लॉग बैकअप नहीं
  • अनुक्रमणिका गुम
  • खराब लिखित प्रश्न

7
  • खराब डेटाबेस और एप्लिकेशन डिज़ाइन
  • प्लेटफ़ॉर्म फ़ायदों का ख़राब उपयोग (डेवलपर प्लेटफ़ॉर्म-इनडिपेंडेड डेटाबेस-एक्सेस कोड चाहते थे। कोई एसपी, कोई फ़ंक्शन आदि नहीं)
  • खराब अनुक्रमण, बिल्कुल।

7
  • ठेस डेटा पर तदर्थ प्रश्न - हां, डेवलपर्स का मानना ​​है कि यह आवश्यक है और कुछ की पहुंच भी हो सकती है :-)
  • डेटाबेस का उपयोग करने वाले ऐप का बुरा डिज़ाइन - जैसे: बहुत अधिक डेटा जोड़ा गया और कभी भी हटा नहीं दिया गया, भले ही यह अब और आवश्यक न हो (जो प्रदर्शन समस्याओं की वजह से बैकअप बड़ा हो जाता है, रखरखाव कार्य अधिक समय तक होता है .. आदि)
  • एक ही छापे या बदतर पर सभी डेटाबेस फ़ाइलें, एक ही ड्राइव पर (जैसे: सिस्टम dbs, tempdb, उपयोगकर्ता एक ही ड्राइव / छापे पर सभी एक साथ dbs)

3
  • खराब डेटाबेस डिजाइन
  • खराब अनुक्रमण रणनीति (बहुत अधिक अनुक्रमणिका, अनुपलब्ध अनुक्रमणिका और अनुक्रमण रखरखाव की कमी सहित)
  • खराब हार्डवेयर वास्तु निर्णय

2

अनुक्रमण प्रदर्शन के लिए महत्वपूर्ण है, लेकिन मैंने पाया है कि ज्यादातर डीबीए जानते हैं, और इसलिए यह उन पहली चीजों में से एक है जो क्वेरी ऑप्टिमाइज़ेशन के माध्यम से तय होती हैं। वे क्षेत्र जिन्हें अक्सर अच्छी तरह से संबोधित नहीं किया जाता है:

  1. बहुत सारे डीबी राउंड-ट्रिप। चेटनेस मुख्य प्रदर्शन समस्याओं में से एक है जिसे मैं देखता हूं।
  2. सही लेन-देन की सीमाएँ प्राप्त करना। हर INSERT / UPDATE / DELETE को लेनदेन करना एक बड़ा प्रदर्शन हत्यारा हो सकता है।
  3. हार्डवेयर पक्ष को अनुकूलित करने में विफलता; विशेष रूप से, DB डेटा से एक अलग वॉल्यूम पर DB लॉग डाल रहा है।

यदि मैं सूची में एक चौथा आइटम जोड़ सकता हूं, तो यह ट्रिगर्स और / या शापर्स का अत्यधिक और अनुचित उपयोग होगा। इन दिनों बहुत ज्यादा नहीं लगता है, लेकिन जब ऐसा होता है, तो यह प्रदर्शन के दृष्टिकोण से दर्दनाक होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.