2009-11-04 17 views
5

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

किसी भी मदद के लिए धन्यवाद।

+0

संबंधित: http://stackoverflow.com/questions/42483/simulated-olap/42504#42504 –

उत्तर

13

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

कहा जाता है कि, एक घन आमतौर पर संख्यात्मक स्थिर डेटा के विश्लेषण के लिए सबसे अच्छा काम करता है, जैसे बड़ी संख्या में बिक्री/लेनदेन/समय के साथ जो भी रिकॉर्ड एकत्रित करना। इसके विपरीत, एक पारंपरिक संबंधपरक डेटाबेस आमतौर पर ठीक काम करता है, यदि स्कीमा और इंडेक्स अच्छी तरह से खोज के लिए तैयार हैं। न्यायाधीश को एक आसान तरीका: अपने एसक्यूएल प्रश्नों

select grock, sum/min/max/avg(foo) 
from bar 
group by grock -- Ideal Analysis Services problem 

का एक बहुत कुछ करना है तो एक घन मदद मिल सकती है (यह कुल गणित कार्यों के लिए बनाया गया है - द्वारा योग() और समूह)। OTOH अगर आपके प्रश्नों तो

select cols 
from foo 
where <complicated search> -- Not so much 

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

क्या आपके पास क्लस्टर्ड इंडेक्स है और गैर-क्लस्टर इंडेक्स को कवर करना है जो प्रश्नों से मेल खाते हैं?

2

"संग्रहित प्रक्रियाओं का प्रदर्शन तो भी उपयुक्त सूचकांक धीमी है"

अगर संग्रहीत प्रक्रिया वास्तविक समस्या है, हो सकता है धीमी गति से जिस तरह से प्रक्रियाओं का उपयोग किया जाता है मुझे आश्चर्य होगा, लेकिन एक परिभाषा द्वारा संग्रहित प्रक्रिया इसे धीमा नहीं करती है। क्या आपने पाया है कि आपकी प्रक्रियाओं के बारे में क्या धीमा है? क्या आपने उन्हें प्रोफाइल किया है? मैं अपने डेटाबेस को फिर से डिजाइन करने से पहले उस मार्ग पर गहराई से लूंगा। बहु-आयामी डेटाबेस ओलाप के लिए हैं क्या आपका डेटाबेस सख्ती से ओलाप डेटाबेस है या क्या यह ओलाप और ओएलटीपी का संकर है? हो सकता है कि आपको अपने ओएलटीपी डिज़ाइन में डेटा को डी-सामान्यीकृत डी संरचना में डी-सामान्यीकृत और दोहराना होगा? किसी तालिका में 600 मिलियन रिकॉर्ड किसी भी तरह से बड़े नहीं होते हैं, यह छोटा नहीं है, लेकिन इससे मुझे विश्वास नहीं होता है कि संग्रहित प्रक्रियाओं को छोड़कर जादूगरों को चीजों को तेज़ कर दिया जाएगा। अपनी संग्रहीत प्रोसेस को प्रोफाइल करें और देखें कि समस्या को ठीक करने के लिए एक बड़ी परियोजना में कूदने से पहले प्रदर्शन बाधाएं कहां हैं।

+0

की तरह एक साधारण क्वेरी: लेख से [चुनिंदा आईडी जहां ('ए' में CategoryName, 'बी', 'सी')] श्रेणी नाम पर एक सूचकांक के साथ परिणाम प्राप्त करने में लगभग 60 सेकंड लगते हैं। जिस तरह से डेटाबेस में केवल स्थिर डेटा होता है लेकिन इसे OLTP डेटाबेस के रूप में डिज़ाइन किया गया था। –

+0

आपको कौन सी क्वेरी योजना है जो आपको देता है? यह कितनी पंक्तियां वापस आती है? कॉलम आईडी अनुक्रमित है? आईएन ऑन ('ए', 'बी', 'सी') एक सूचकांक का उपयोग करने में सक्षम नहीं होगा। – Kuberchaun

+0

यहां एक लिंक है जिसमें कुछ उच्च स्तरीय युक्तियां हैं जो उपयोगी हो सकती हैं http://blogs.techrepublic.com.com/datacenter/?p=173 – Kuberchaun

6

एमएस SSAS OLAP क्यूब कई भंडारण मोड में इस्तेमाल किया जा सकता है:

  1. संबंधपरक (OLAP) - डेटा और मेटाडाटा अपने DB में रहता है और कुछ और materialized विचारों जुड़ जाते हैं। मई हो सकता है या नहीं हो सकता है।

  2. हाइब्रिड (एचओएलएपी) - मेटाडाटा और (पूर्व-गणना) समेकन एक एसएसएएस उदाहरण चलाने वाले नए सर्वर पर संग्रहीत किए जाते हैं। इसने समेकन का उपयोग करके सभी प्रश्नों को तेज करना चाहिए, जैसे कि "पिछले साल के लिए पिछले वर्ष के लिए कुल कर्मचारी घंटे", लेकिन विशिष्ट रिकॉर्ड के लिए ड्रिल-थ्रू के प्रश्न पहले की तरह हो सकते हैं।

  3. बहु-आयामी ओलाप (एमओएलएपी) जहां आपके सभी डेटा प्लस मेटाडेटा और एकत्रीकरण एसएसएएस सर्वर पर कॉपी किए गए हैं। यह आमतौर पर सबसे तेज़ है, लेकिन डुप्लिकेट स्टोरेज है।

इस शुरू करने से पहले, आप आप रिपोर्टिंग तथा विश्लेषण के लिए तालिका लेआउट अनुकूलित करने पर विचार करना चाहिए, दूसरे शब्दों में एक डेटा गोदाम (DW) का उपयोग करें - एक Kimball स्टार आयाम और तथ्य यह है तालिकाओं में अपने डेटा डाल दिया। फिर आप समय-समय पर ईटीएल (एसएसआईएस) का उपयोग करके डीडब्ल्यू लोड करते हैं और डीडब्ल्यू को अपनी रिपोर्टिंग और विश्लेषण को इंगित करते हैं। ऐसा हो सकता है कि आपको एसएसएएस का उपयोग करने की आवश्यकता नहीं है - एक स्टार टेबल लेआउट के खिलाफ चल रहे एसक्यूएल प्रश्न आमतौर पर सामान्यीकृत डीबी - ऑपरेशनल डेटाबेस के मुकाबले काफी तेज़ होते हैं। यदि यह अभी भी धीमा है, तो डीडब्ल्यू के शीर्ष पर एसएसएएस क्यूब बनाएं। एक बार जब आप अपना डीडब्ल्यू लोड करना शुरू कर देते हैं, तो आप रिकॉर्ड्स को अपने परिचालन डेटाबेस के रूप में हटा सकते हैं, जिससे इसे हर दिन उपयोग के लिए तेज़ बना दिया जा सकता है।

संक्षेप में, मेरा नियम-के अंगूठे होगा:
1. बिल्ड एक DW और सेट अपने ETL प्रक्रिया
2. कोशिश T-SQL DW के खिलाफ रिपोर्ट करती है, यह काफी अच्छा हो सकता है।
3. यदि अभी भी धीमा है, तो होलप मोड में एसएसएएस क्यूब्स (डीडब्ल्यू के शीर्ष पर) बनाएं और उन्हें पूछने के लिए एमडीएक्स का उपयोग करें।

1

क्या आपने PowerPivot (Excel एड-ऑन) माना है? यह स्थानीय रूप से 95% डेटा को संपीड़ित करने के लिए लंबवत संपीड़न का उपयोग करता है, ताकि आप अपने दिल की सामग्री का विश्लेषण कर सकें।

http://technet.microsoft.com/en-us/library/ee210692.aspx

संबंधित मुद्दे