विशाल तालिका के लिए प्रदर्शन ट्यूनिंग (SQL सर्वर 2008 R2)


14

पृष्ठभूमि:
मेरे पास यूएटी चरण में एक तथ्य तालिका है। उत्पादन में 5 वर्ष का डेटा लोड करने का उद्देश्य (अपेक्षित आकार 400 एमएन रिकॉर्ड)। वर्तमान में इसके पास टेस्ट में केवल 2 वर्ष का डेटा है।

तालिका विशेषताएं:

  1. आयामों की संख्या ~ 45
  2. उपाय ~ ३०
  3. गैर-योज्य उपाय और अन्य कॉलम ~ 25
  4. वर्तमान डेटा का आकार ~ 200 मिलियन (2 वर्ष का डेटा)
  5. समय दृश्य: 3 अलग-अलग महीने के दृश्य: राजकोषीय / कैलेंडर / समायोजित (यानी एक ही पंक्ति अलग-अलग महीनों में गिर सकती है, जिसके आधार पर कोई व्यक्ति देख रहा है)
  6. एक उपयोगकर्ता द्वारा एक समय में केवल एक दृश्य की आवश्यकता होगी। (यानी, केवल एक महीने के कॉलम का उपयोग क्वेरी में किया जाएगा, यह हमें समय पर विभाजन को करने के लिए रोक रहा है)
  7. अनुक्रमणिका: प्राकृतिक कुंजी (8 कॉलम) पर 1 क्लस्टर किए गए सूचकांक। कुछ आयाम SKs (FKs) और सभी उपायों सहित प्रत्येक महीने के स्तंभ पर गैर-संकुल अनुक्रमणिका को कवर करने वाले 3 को बनाया गया।
  8. इंडेक्स इस वजह से विशाल (कुल 190 जीबी) हैं।
  9. अंतरिक्ष बाधा नहीं है (1 टीबी आवंटित)
  10. सर्वर में 64 जीबी रैम उपलब्ध है।
  11. टेबल कंप्रेशन भी किया।

आवश्यकता:
इस फैक्ट टेबल पर क्वेरीज़ को 30 सेकंड के भीतर परिणाम देना चाहिए (सामान्य प्रश्नों का चयन करें (माप करें) डिम वेल्थ द्वारा कुछ डिम्स समूह में शामिल हो सकता है)। इस तथ्य तालिका के शीर्ष पर सीधे रिपोर्ट की जाती है।

समस्या:
कोई भी क्वेरी जिसमें इंडेक्स में उपलब्ध कॉलम शामिल हैं वह ठीक काम करता है, लेकिन अगर हम किसी अन्य कॉलम को शामिल करते हैं जो कि शामिल नहीं है..यह बेकार है। इसमें 5-10 मिनट से अधिक समय लगता है। क्या कोई भी कोई समाधान सुझा सकता है, जहाँ वह हमारे द्वारा चुने गए किसी भी आयाम / स्तंभ के लिए ठीक काम करता है। क्या इस स्थिति में सूचकांक देखने में मदद कर सकता है?

जवाबों:


6

SQL Server 2012 में अपग्रेड करें और स्तंभ का उपयोग करें । वे इन आवश्यकताओं में कामयाब होते हैं। गंभीरता से, मूल्यांकन संस्करण डाउनलोड करें और इसे आज़माएं। सभी इंडेक्स को ड्रॉप करें, क्लस्टर किए गए इंडेक्स को ड्रॉप करें, बस सभी कॉलम पर एक गैर-क्लस्टर किए गए कॉलमस्टोर इंडेक्स को जोड़ें और इसे एक चक्कर दें। मैंने ऐसे मामलों को देखा है जो आपके निष्पादन के समय को 2-3 सेकंड तक कम कर देते हैं, क्योंकि ज्यादातर खंड उन्मूलन में किकिंग करते हैं। कुछ पूरक पुन: प्राप्त होते हैं:


0

क्या अनुक्रमित दृश्य आपकी समस्या का समाधान करेगा? कितने समय तक डेटा होना चाहिए? आप कुछ क्रमपरिवर्तन के लिए अनुक्रमित दृश्य बना सकते हैं। लेकिन इसके साथ ही कई मंदताएँ और उपाय आप अंतरिक्ष से जल्दी से बाहर निकल सकते हैं!

SSD का उपयोग कैसे करें?


हर महीने डेटा अपडेट किया जाएगा। दृश्य को अपडेट करने में कितना समय लगेगा?

यदि आपकी मौजूदा क्वेरी में 5-10 मिनट लगते हैं, तो अनुक्रमित दृश्य में 5-10 मिनट लगेंगे। पूर्ण होने पर, जब आप एक ही क्वेरी चलाते हैं तो वह वापस आ जाएगी, क्योंकि यह एक तालिका से बाहर आ रही है (अर्थात तुरंत)। एक अनुक्रमित दृश्य SQL के एक विशेष बिट को पूर्व-चलाता है। यदि आप उससे मेल खाने वाले SQL को सबमिट करते हैं, तो यह इसे फिर से चलाने के बजाय अनुक्रमित दृश्य से लेता है। अनुक्रमित दृश्य का प्रमुख लाभ यह है कि आपको अपने मौजूदा प्रश्नों को बदलने की आवश्यकता नहीं है, वे स्वचालित रूप से इसका उपयोग करेंगे। नुकसान आप बहुत कुछ अलग संयोजनों के लिए एक बनाने के लिए है।
Nick.McD मत्स्यांगना

लेकिन मैं सुझाव नहीं देता कि आप चीजों को गति देने के लिए कई अनुक्रमित दृश्य बनाकर चलते हैं - आप अंततः समय और डिस्क स्थान से बाहर निकल जाएंगे। यह आपके शस्त्रागार में डालने के लिए सिर्फ एक चीज हो सकती है।
Nick.McD मत्स्य

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