नोट: यह उत्तर एंटरप्राइज़-क्लास विकास को बड़े में संबोधित करता है।
यह एक आरडीबीएमएस मुद्दा है, न केवल SQL सर्वर, और व्यवहार बहुत दिलचस्प हो सकता है। एक के लिए, प्राथमिक कुंजी के लिए स्वचालित रूप से अनुक्रमित होने के लिए यह सामान्य है (विशिष्ट रूप से), यह पूर्ण नहीं है। ऐसे समय होते हैं जब प्राथमिक कुंजी को विशिष्ट रूप से अनुक्रमित नहीं किया जाता है।
अधिकांश आरडीबीएमएस में, एक अद्वितीय इंडेक्स स्वचालित कुंजी पर स्वचालित रूप से बनाया जाएगा यदि कोई पहले से मौजूद नहीं है। इसलिए, आप इसे प्राथमिक कुंजी के रूप में घोषित करने से पहले प्राथमिक कुंजी कॉलम पर अपनी खुद की अनुक्रमणिका बना सकते हैं, फिर जब आप प्राथमिक कुंजी घोषणा लागू करते हैं तो उस डेटाबेस का उपयोग डेटाबेस इंजन द्वारा किया जाएगा (यदि स्वीकार्य है)। अक्सर, आप प्राथमिक कुंजी बना सकते हैं और इसकी डिफ़ॉल्ट अद्वितीय अनुक्रमणिका को बनाने की अनुमति दे सकते हैं, फिर उस कॉलम पर अपना स्वयं का वैकल्पिक अनुक्रमणिका बनाएं, फिर डिफ़ॉल्ट अनुक्रमणिका ड्रॉप करें।
अब मजेदार भाग के लिए - जब आप एक अद्वितीय प्राथमिक कुंजी अनुक्रमणिका नहीं चाहते हैं? आप एक नहीं चाहते हैं, और एक को बर्दाश्त नहीं कर सकते हैं, जब आपकी तालिका इंडेक्स के रख-रखाव को महंगी बनाने के लिए पर्याप्त डेटा (पंक्तियां) प्राप्त करती है। यह हार्डवेयर, आरडीबीएमएस इंजन, तालिका की विशेषताओं और डेटाबेस, और सिस्टम लोड के आधार पर भिन्न होता है। हालांकि, तालिका में कुछ मिलियन पंक्तियों तक पहुंचने के बाद आम तौर पर प्रकट होना शुरू होता है।
आवश्यक मुद्दा यह है कि प्राथमिक कुंजी कॉलम की पंक्ति या अद्यतन के प्रत्येक सम्मिलन के परिणामस्वरूप विशिष्टता सुनिश्चित करने के लिए इंडेक्स स्कैन होता है। वह अनन्य इंडेक्स स्कैन (या जो भी आरडीबीएमएस में बराबर है) टेबल के बढ़ने के साथ और अधिक महंगा हो जाता है, जब तक कि यह तालिका के प्रदर्शन पर हावी न हो।
मैंने इस मुद्दे को कई बार दो अरब पंक्तियों, 8 टीबी स्टोरेज, और प्रति दिन चालीस मिलियन पंक्ति प्रविष्टियों के साथ निपटाया है। मुझे शामिल सिस्टम को फिर से डिजाइन करने का काम सौंपा गया था, जिसमें अद्वितीय प्राथमिक कुंजी इंडेक्स को व्यावहारिक रूप से चरण एक के रूप में छोड़ना शामिल था। दरअसल, उस सूचकांक को छोड़कर उत्पादन में जरूरी था कि हम एक आस्तीन से ठीक हो जाएं, इससे पहले कि हम एक नया स्वरूप भी बंद कर दें। उस रीडिज़ाइन में प्राथमिक कुंजी की विशिष्टता सुनिश्चित करने और डेटा तक त्वरित पहुंच प्रदान करने के अन्य तरीकों को ढूंढना शामिल था।
स्रोत
2009-01-20 20:07:55
अप्रयुक्त इंडेक्स का नुकसान वास्तव में बहुत हानिकारक है। एक बात के लिए, इंडेक्स भंडारण खाते हैं। एक और बात के लिए, यह लिखता है और अद्यतन धीमा करता है। उन इंडेक्स को हमेशा हटाएं जिनका उपयोग नहीं किया जा रहा है। – Pacerier