2009-08-24 4 views
6

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

+5

डेवलपर्स को (और लगभग हमेशा करना चाहिए) डीबीए से अधिक जानना चाहिए। –

+0

कृपया इसे एक समुदाय विकी बनाएं। –

+1

सम्मान के साथ, नील, मैं इससे सहमत नहीं हूं।डीबीए के पास वास्तविक रनस्टैट या निष्पादन योजनाओं तक पहुंच है, इसलिए वे * जानते हैं * बाधाएं क्या हैं। डेवलपर्स केवल अपेक्षित डेटा के आधार पर मानते हैं। कभी-कभी उन धारणाएं सही होती हैं, कभी-कभी नहीं। लेकिन वे * धारणाएं हैं। – paxdiablo

उत्तर

7

इन और डेटाबेस भंडारण और अनुकूलन के बहिष्कार विशाल कर रहे हैं। टेबल को इंडेक्स और विभाजन कैसे करना है, यह जानना अमूल्य ज्ञान है।

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

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

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

जो मुझे सबसे महत्वपूर्ण बिंदु पर लाता है, डेटाबेस डेवलपर्स को सेट में सोचने की आवश्यकता है। अक्सर मैं सुनता हूं, "प्रत्येक पंक्ति के लिए, मैं चाहता हूं ..." और यह आमतौर पर मेरे सिर में एक अलार्म है। आपको इस बारे में सोचना चाहिए कि सेट कैसे इंटरैक्ट करता है और आप जो कॉलम पूरे कॉलम पर लेना चाहते हैं।

+0

कुछ अच्छे अंक वहां, thx – DBMarcos99

2

अनुकूलन। आपके कोड को हमेशा के रूप में कम संसाधनों के रूप में उपयोग करना चाहिए।

+0

मुझे यह जवाब पसंद है! (हालांकि मैं उन परिदृश्यों के बारे में सोच सकता हूं जहां संसाधन उपयोग ओवरराइडिंग समस्या नहीं है) – DBMarcos99

8

डेवलपर सब कुछ है कि अपने कोड क) सही और ख) तेज़ बनाया है करने के लिए जिम्मेदार है।

निश्चित रूप से

यह अनुक्रमित और तालिका बनाने में शामिल हैं।

अनुक्रमणिका के लिए एक DBA जिम्मेदार बनाना एक बुरा विचार है। अगर कोड धीरे-धीरे चलता है तो क्या होगा? दोषी कौन है: खराब कोड वाले डेवलपर या DBA खराब इंडेक्स के साथ?

एक DBA बैकअप, बुनियादी सुविधाओं आदि के निर्माण की तरह डेटाबेस समर्थन संचालन व्यक्त, और संसाधनों की कमी रिपोर्ट करना चाहिए।

वह decicions कि पूरे डेटाबेस प्रणाली के प्रदर्शन को प्रभावित करने के लिए एक एकमात्र व्यक्ति नहीं होना चाहिए।

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

अगर वहाँ संसाधनों की कमी है (जैसे कि, एक सूचकांक कुछ क्वेरी तेजी से कुछ DML आपरेशन धीमी गति से होने के expence में बनाता है), यह एक डीबीए द्वारा सूचना दी, नहीं तय होना चाहिए।

अब, यह एक निर्णय लेने का समय है। हमें और अधिक, तेज़ क्वेरी या तेज़ डालने की क्या ज़रूरत है?

यह निर्णय प्रोग्राम प्रबंधक (और DBA या डेवलपर नहीं) द्वारा किया जाना चाहिए।

और जब निर्णय लिया जाता है, तो डेवलपर को नया कार्य दिया जाना चाहिए: "SELECT क्वेरी जितनी जल्दी हो सके, यह ध्यान में रखते हुए कि आपके पास यह अनुक्रमणिका नहीं है"। या "INSERT क्वेरी जितनी जल्दी हो सके, यह ध्यान में रखते हुए कि आपके पास यह अनुक्रमणिका होगी"।

एक डेवलपर को के बारे में सब कुछ पता होना चाहिए, जब यह सामान्य रूप से काम करता है, तो डेटाबेस कैसे काम करता है।

DBAके बारे में सब कुछ पता होना चाहिए सामान्य रूप से काम करने के लिए डेटाबेस कैसे बनाना है।

उत्तरार्द्ध में बैकअप बनाने की क्षमता, बैकअप से पुनर्स्थापित करने की क्षमता और संसाधन विवाद की पहचान करने और रिपोर्ट करने की क्षमता शामिल है।

+0

आपके इनपुट के लिए Thx। मैं कई परिदृश्यों के बारे में सोच सकता हूं जहां डीबीए क्वेरी ऑप्टिमाइज़ेशन के लिए ज़िम्मेदार है - डेवलपर पत्तियां, डीबी संरचना में परिवर्तन, कार्यक्षमता बदल दी गई है, नई अनुक्रमणिका आवश्यक हैं आदि – DBMarcos99

+1

'डीबीएमर्कोस 99': जो कुछ आपने अभी वर्णित किया है (डेवलपर छोड़ने के अलावा) शामिल है निर्णय लेना। यह 'डीबीए की ज़िम्मेदारी नहीं है, यह प्रोग्राम मैनेजर की ज़िम्मेदारी है। – Quassnoi

+1

@Quassnoi: मैं असहमत हूं; डीबीए होने के नाते निर्णय लेने और जिम्मेदारी के बारे में "सब" है। आप प्रोग्राम मैनेजर द्वारा हर एक मिनट के फैसले को नहीं चला सकते हैं, कुछ भी नहीं किया जाएगा। व्यापार, जो हम सब कुछ बाद में हैं, परिणाम देने के बारे में है और यही वह है जो डीबीए की भूमिका को सुविधाजनक बनाता है। –

1

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

+0

उस उत्तर के लिए Thx। – DBMarcos99

1

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

मुझे लगता है कि हर कोई इसे कवर करता है।

2

मैं संबंधित डीबीएमएस के लिए सुरक्षा वास्तुकला की समझ विकसित करने की सिफारिश करता हूं।

ऐसा करने से सुरक्षित कोड के विकास को सुविधाजनक बनाया जा सकता है।

विशेष रूप से ध्यान में उदाहरण के लिए SQL सर्वर के साथ

:

  • समझे क्यों अपने "प्रबंधित कोड" (जैसे .NET CLR के रूप में) ऊंचा विशेषाधिकार प्रदान नहीं किया जाना चाहिए। ऐसा करने के प्रभाव क्या होंगे?
  • क्रॉस-डेटाबेस स्वामित्व श्रृंखला क्या है? यह कैसे काम करता है?
  • निष्पादन संदर्भ को समझें।
  • देशी SQL सर्वर एन्क्रिप्शन कैसे काम करता है?
  • आप संग्रहीत प्रक्रिया पर कैसे हस्ताक्षर कर सकते हैं? आप यह क्यों करना चाहते हैं?
  • आदि

एक सामान्य नियम के रूप में, और अधिक आप इंजन आप के साथ काम कर रहे हैं के बारे में समझते हैं, और अधिक प्रदर्शन आप इसे से निचोड़ कर सकते हैं।

+0

यह एक अच्छा उदाहरण है जिसे मैं वास्तव में * डीबीए 'का कार्य मानता हूं जिसे डेवलपर्स को भी समझना चाहिए। +1। – Quassnoi

0

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

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