SQL सर्वर - रिपोर्ट के लिए अलग डेटाबेस?


19

हमारे SQL सर्वर पर, हमारे पास हमारे प्रत्येक वेब ऐप के लिए एक डेटाबेस है। रिपोर्टों के लिए, हम रिपोर्टिंग सेवाओं का उपयोग करते हैं और सभी रिपोर्ट डेटा (रिपोर्ट मापदंडों सहित) संग्रहीत प्रक्रियाओं से आते हैं।

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

इसका मतलब यह है कि सभी रिपोर्टों में कम से कम एंटरप्राइज़ डेटाबेस का कनेक्शन और किसी अन्य डेटाबेस का कनेक्शन है - और कभी-कभी इससे अधिक भी।

मेरा प्रश्न है: क्या रिपोर्टिंग प्रॉक्सेस को एक अलग "रिपोर्ट" डेटाबेस में ले जाने का लाभ है । मुझे पता है कि रिपोर्ट को किसी अन्य सर्वर पर ले जाने के फायदे हैं और मैं इस बारे में बात नहीं कर रहा हूं - यह उसी सर्वर पर होगा।

चीजें जो इसे प्रभावित कर सकती हैं वे हैं:

  • किसी रिपोर्ट के लिए एक से अधिक डेटाबेस कनेक्शन होने से रिपोर्ट की गति प्रभावित होती है?
  • क्या डेटा से अलग डेटाबेस में रिपोर्टिंग खरीद होने से हमें अनुक्रमित विचारों का उपयोग करने से रोका जा सकेगा?
  • क्या आपको यह आसान / कठिन लगा है कि क्या आपको एक अलग डेटाबेस में रिपोर्ट दी गई है?

मुझे बताओ कि तुम क्या सोचते हो।


मेरे प्रश्न हैं: जब आप RS और / या DW को किसी अन्य सर्वर पर ले जाते हैं तो क्या आपके पास इस (इन) नए सर्वर (ओं) पर एक मौजूदा डेटाबेस इंजन है? या आप मूल डेटाबेस इंजन का उपयोग कर रहे हैं? - तो क्या आपके पास सभी SQL सर्वर के लिए अलग डेटाबेस इंजन होना चाहिए? धन्यवाद, - डोम

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

जवाबों:


17

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

  1. अपने डेटाबेस को किसी अन्य सर्वर पर दोहराएं और उस पर रिपोर्टिंग स्प्रोक्स को स्थानांतरित करें। प्रतिरूपित सर्वर से रिपोर्ट्स को चलाया जाता है। यह कम से कम प्रयास है और आपकी मौजूदा रिपोर्टों और संग्रहीत प्रक्रियाओं का फिर से उपयोग कर सकता है।
  2. एक डेटा वेयरहाउस बनाएं जो आपके उत्पादन सिस्टम से डेटा को समेकित करता है और इसे एक ऐसे रूप में परिवर्तित करता है जो रिपोर्टिंग के लिए अधिक मित्रता है । यदि आपके पास बहुत से तदर्थ सांख्यिकीय रिपोर्टिंग हैं जो कि स्नैपशॉट से 'कल के कारोबार के करीब' के रूप में स्वीकार्य रूप से किया जा सकता है तो एक डेटा वेयरहाउस बेहतर दृष्टिकोण हो सकता है।

डेटा वेयरहाउस और लीवरेजिंग टेक्नोलॉजी जैसे ओएलएपी का निर्माण जहां यह समझ में आता है कि लेन-देन प्रसंस्करण प्रणाली पर कम प्रभाव के साथ तीव्र, विश्वसनीय रिपोर्टिंग प्रदान करने के लिए आपके विकल्प बढ़ाता है।

2

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

मैंने भी इस लेख को उपयोगी पाया है।


1

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

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


1

मैं आपको दो डेटाबेस का उपयोग करने की सलाह दूंगा।

'लाइव' डेटाबेस से रिपोर्ट प्राप्त करने से प्रदर्शन की समस्याएं होती हैं।

इसके अलावा, चूंकि रिपोर्टिंग डेटाबेस मुख्य रूप से खोजों के लिए है, आप बेहतर प्रदर्शन के लिए यहां अनुक्रमित को अनुकूलित कर सकते हैं। (लाइव डेटाबेस में आवेषण होंगे जो कुछ निश्चित अनुक्रमों से प्रतिकूल रूप से प्रभावित होंगे)


0

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

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