MS SQL डेटाबेस में अंतर-संबंधित संग्रहीत प्रक्रियाओं की एक विशाल वेब का दस्तावेजीकरण: क्या उपकरण या प्रारूप?


11

मुझे उम्मीद है कि यह "1000 पेज की पुस्तक पढ़ें" की तुलना में एक छोटे से उत्तर के साथ एक प्रश्न है, लेकिन फिर, यदि यह वास्तविक स्थिति है, तो मुझे इसके बारे में बताएं।

मैं एक वास्तविक डीबीए नहीं हूं, मैं एक सॉफ्टवेयर डेवलपर हूं जो महसूस कर रहा है कि हमें एक डीबीए की आवश्यकता है, और फिर भी जिस दुकान में मैं काम करता हूं वह शून्य डीबीए है। हालाँकि हमारे MS SQL डेटाबेस डिज़ाइन में कई मुख्य संग्रहीत कार्यविधियाँ शामिल हैं, एक विशाल गड़बड़ है। संग्रहीत प्रक्रियाएं धीमी हैं, हमें संदेह है कि उनके पास कीड़े हैं, लेकिन हम यह भी नहीं जानते हैं कि उनसे कैसे काम करने की उम्मीद की जाती है, इसलिए हम नहीं जानते कि उन्हें कैसे ठीक किया जाए।

एक शुरुआत के रूप में मैंने फैसला किया है कि हम यह दस्तावेज करेंगे कि यह सभी काम करने के लिए कैसे माना जाता है, फिर हम इकाई परीक्षण शुरू करेंगे, और इकाई परीक्षणों का एक सेट तैयार करेंगे जो यह साबित करने में मदद करें कि संग्रहीत प्रक्रियाएं वास्तव में काम करती हैं। वे जो तर्क करते हैं, वह हमारे आवेदन का एक महत्वपूर्ण हिस्सा है, आप कह सकते हैं, यह हमारी कंपनी के मुख्य उत्पाद का "क्राउन ज्वेल्स" है, और जिस तरह से यह काम करता है वह पूरी तरह से अनिर्दिष्ट है।

मैं उन विशिष्ट तकनीकी दस्तावेज़ीकरणों की तलाश कर रहा हूं जो एक पेशेवर डीबीए को मौजूदा होने की उम्मीद कर सकते हैं, या खुद को लिख सकते हैं, अगर उन्हें एक-दूसरे को कॉल करने वाली संग्रहीत प्रक्रियाओं के विशालकाय वेब को समझना है।

  1. एक बड़ी संग्रहीत प्रक्रिया के दस्तावेजीकरण के लिए सामान्य प्रारूप क्या है? प्रत्येक पैरामीटर के लिए अपेक्षित मानों का विवरण (अर्थात "पूर्व-शर्तें", "पोस्टकॉन्डिशन", अर्थात, बूलियन मापदंडों के लिए जब आप इसे चालू या बंद करते हैं, तो क्या परिवर्तन होता है?)

  2. आमतौर पर कोई इसे कैसे प्रलेखित करता है? एसक्यूएल टिप्पणियाँ केवल? बाहरी टूलींग जो उद्देश्य के लिए विशिष्ट है? बाहरी "प्रलेखन"? हमारे पास कोई SQL उपकरण नहीं है, MS SQL प्रबंधन स्टूडियो के अलावा, लेकिन हम सोच रहे हैं कि क्या कोई ऐसा उपकरण है जो हमारे पर्यावरण को बेहतर ढंग से समझेगा, दस्तावेजीकरण और परीक्षण करेगा। हो सकता है कि यह मेरा सवाल पूछने का एक बेहतर तरीका हो; हमारी गंदगी को हल करने के लिए मुझे किस उपकरण की आवश्यकता होगी?

हमारा लक्ष्य है:

उ। प्रलेखन का उपयोग करें जो हम उत्पन्न करते हैं, या जो भी उपकरण हम अपने वातावरण में जोड़ते हैं, यह समझने में मदद करने के लिए कि प्रक्रियाओं को कैसे काम करना है, इसलिए हम तब संग्रहीत प्रक्रियाओं के लिए इकाई परीक्षण कवरेज बनाने के लिए आगे बढ़ सकते हैं।

B. क्लाइंट-ऐप डेवलपर्स को दिखाएं कि इन जटिल संग्रहीत प्रक्रियाओं में से प्रत्येक को ठीक से कैसे कॉल करें।

C. यूनिट हमारे संग्रहीत प्रक्रियाओं का परीक्षण करती है।

जवाबों:


4

प्रलेखन के बारे में सबसे महत्वपूर्ण बात यह है कि यह आपके लिए समझ में आता है। ऐसा करने का वास्तव में कोई मानक तरीका नहीं है।

यदि आपके पास बहुत सारी संग्रहीत प्रक्रियाएं हैं जो सभी एक-दूसरे के साथ शुरू होती हैं जो प्रत्येक प्रक्रिया के लिए एक वस्तु के साथ एक विज़िओ आरेख के साथ शुरू होती हैं, तो उनके बीच लिंक होते हैं ताकि आप ट्रैक कर सकें कि प्रक्रिया से प्रक्रिया तक जाने वाली चीजें संभवतः एक बहुत अच्छी शुरुआत हैं।


4

Redgate एसक्यूएल निर्भरता ट्रैकर उपकरण उपयोगी हो सकता है। यह आपको ग्राफिक रूप से दिखा सकता है कि कौन सी डेटाबेस ऑब्जेक्ट्स (SP / / views / tables) एक दूसरे पर निर्भर हैं। मैंने कुछ तालिकाओं के साथ काम करते समय इसका उपयोग किया है जिससे मैं अपरिचित को अक्षम करने के क्रम को निर्धारित करने के लिए अपरिचित था।

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

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

साइड नोट, मैंने एक बार प्रिंटर को कूल 11 x 17 पेपर के साथ लोड किया था, जिसमें डेटा का एक जटिल प्रवाह / एसपी के कुछ छद्म एसक्यूएल के 5 पृष्ठों में संक्षेप करने के लिए एक अच्छा सा फ़ॉन्ट और कुछ तार्किक इंडेंटेशन मिला। मुझे पूरा यकीन है कि मैंने इसे केवल कुछ ही समय का हवाला देते हुए समाप्त कर दिया है और कोई भी इसके पास जाने की हिम्मत नहीं करता है क्योंकि यह मानक नहीं था और इसकी कड़ी मेहनत पर भरोसा करने के लिए कुछ भी नहीं जो कि एकीकृत नहीं है और तारीख से बाहर निकल सकता है। दस्तावेज़ीकरण प्रक्रिया ने कोड के साथ एक परिचित को मजबूर किया था!


मैंने इस और अन्य उपकरणों के एक समूह का मूल्यांकन किया। अब तक, मैं अभी भी इसे हाथ से कर रहा हूं। इस प्रकार मैंने उस उत्तर को स्वीकार कर लिया जो दर्शाता है कि मैंने क्या किया। लेकिन यह मस्त है।
वॉरेन पी

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