Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल को स्टोर्ड प्रोसेस बनाम कोड में रखने के पक्ष और विपक्ष क्या हैं?

मैं संग्रहित प्रक्रियाओं का प्रशंसक नहीं हूं

<ब्लॉकक्वॉट>

संग्रहीत कार्यविधियाँ अधिक रखरखाव योग्य हैं क्योंकि:* जब भी आप कुछ SQL बदलना चाहते हैं तो आपको अपने C# ऐप को फिर से संकलित करने की आवश्यकता नहीं होती है

जब भी डेटाटाइप बदलते हैं, या आप एक अतिरिक्त कॉलम, या जो कुछ भी वापस करना चाहते हैं, तो आप इसे फिर से कंपाइल कर देंगे। जितनी बार आप अपने ऐप के नीचे से SQL को 'पारदर्शी रूप से' बदल सकते हैं, वह कुल मिलाकर बहुत कम है

  • आप अंत में SQL कोड का पुन:उपयोग करते हैं।

प्रोग्रामिंग भाषाओं, सी # शामिल, में यह अद्भुत चीज है, जिसे फ़ंक्शन कहा जाता है। इसका मतलब है कि आप एक ही कोड के ब्लॉक को कई जगहों से इनवाइट कर सकते हैं! अद्भुत! फिर आप इनमें से किसी एक के अंदर पुन:उपयोग करने योग्य SQL कोड डाल सकते हैं, या यदि आप वास्तव में उच्च तकनीक प्राप्त करना चाहते हैं, तो आप एक पुस्तकालय का उपयोग कर सकते हैं जो यह आपके लिए करता है। मेरा मानना ​​है कि उन्हें ऑब्जेक्ट रिलेशनल मैपर कहा जाता है, और आजकल बहुत आम हैं।

<ब्लॉकक्वॉट>

कोड दोहराव सबसे खराब काम है जो आप तब कर सकते हैं जब आप एक अनुरक्षण योग्य एप्लिकेशन बनाने का प्रयास कर रहे हों!

सहमत हैं, यही वजह है कि स्टोरप्रोक्स एक बुरी चीज है। एसक्यूएल के... ब्लॉक में एसक्यूएल की तुलना में कार्यों में कोड को रिफैक्टर करना और विघटित करना (छोटे भागों में तोड़ना) बहुत आसान है?

<ब्लॉकक्वॉट>

आपके पास 4 वेबसर्वर और विंडोज़ ऐप्स का एक गुच्छा है जो एक ही SQL कोड का उपयोग करते हैं अब आपको एहसास हुआ कि SQl कोड के साथ एक छोटी सी समस्या है, तो क्या आप इसके बजाय ...... खरीद को 1 स्थान पर बदलें या कोड को सभी तक पहुंचाएं वेबसर्वर, सभी विंडोज़ बॉक्सों पर सभी डेस्कटॉप ऐप्स (एक बार मदद हो सकती है) को फिर से स्थापित करें

आपके विंडोज़ ऐप्स सीधे केंद्रीय डेटाबेस से क्यों जुड़ रहे हैं? ऐसा लगता है कि वहां एक बड़ा सुरक्षा छेद है, और बाधा है क्योंकि यह सर्वर-साइड कैशिंग को नियंत्रित करता है। क्या वे वेब सेवा के माध्यम से या आपके वेब सर्वर के समान कनेक्ट नहीं होने चाहिए?

तो, 1 नया स्पोक, या 4 नए वेबसर्वर पुश करें?

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

<ब्लॉकक्वॉट>

अधिक आसानी से कोड की समीक्षा की गई।

क्या आप समझा सकते हैं कि कैसे? मुझे यह नहीं मिला। विशेष रूप से यह देखते हुए कि sprocs शायद स्रोत नियंत्रण में नहीं हैं, और इसलिए वेब-आधारित SCM ब्राउज़रों आदि के माध्यम से पहुँचा नहीं जा सकता।

अधिक विपक्ष:

Storedprocs डेटाबेस में रहते हैं, जो बाहरी दुनिया को ब्लैक बॉक्स के रूप में दिखाई देता है। साधारण चीजें जैसे उन्हें स्रोत नियंत्रण में रखना एक दुःस्वप्न बन जाता है।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नवरचर (अधिकतम) के लिए मुझे टीएसक्यूएल में केवल 4000 वर्ण मिल रहे हैं?

  2. SQL सर्वर IF बनाम IIF ():क्या अंतर है?

  3. SQL सर्वर की छिपी विशेषताएं

  4. SQL सर्वर (SSMS) में डेटाबेस के संगतता स्तर की जाँच करें/बदलें

  5. SSIS में मर्ज जॉइन और लुकअप ट्रांसफॉर्मेशन में क्या अंतर हैं?