क्या SQL सर्वर डेटाबेस में प्रत्येक विदेशी कुंजी के लिए अनुक्रमणिका बनाने का अच्छा अभ्यास है?क्या प्रत्येक SQL सर्वर विदेशी कुंजी में मिलान करने वाली अनुक्रमणिका होनी चाहिए?
उत्तर
हाँ यह एक अच्छा अभ्यास है, यहां देखें: When did SQL Server stop putting indexes on Foreign Key columns?पर स्क्रॉल करें क्या विदेशी कुंजी कॉलम अनुक्रमणित करने के कोई लाभ हैं? अनुभाग
हर विदेशी कुंजी? नहीं। जहां चयनिता कम है (यानी कई मान डुप्लिकेट किए गए हैं), एक सूचकांक तालिका स्कैन से अधिक महंगा हो सकता है। साथ ही, एक उच्च गतिविधि वातावरण में (पूछताछ की तुलना में अधिक सम्मिलित/अद्यतन/हटाएं गतिविधि) इंडेक्स को बनाए रखने की लागत सिस्टम के समग्र प्रदर्शन को प्रभावित कर सकती है।
ठीक है। तो क्या वहां कुछ संख्यात्मक सीमा या दहलीज है जो इंडेक्स के निर्माण को ट्रिगर कर सकती है? – GRGodoi
किसी विदेशी कॉलम को अनुक्रमणित करने का कारण किसी भी अन्य कॉलम को अनुक्रमणित करने का कारण है: यदि आप कॉलम द्वारा पंक्तियों को फ़िल्टर करने जा रहे हैं तो एक अनुक्रमणिका बनाएं।
उदाहरण के लिए, यदि आपके पास टेबल [उपयोगकर्ता] (आईडी int, नाम वर्चर (50)) और तालिका [उपयोगकर्ता एक्शन] (उपयोगकर्ता आईडी int, एक्शन वर्कर (50)) है तो आप शायद यह खोज सकेंगे कि आप क्या ढूंढ पाएंगे एक विशेष उपयोगकर्ता ने किया कार्रवाई। फिर उस पर एक सूचकांक डाल करने के लिए कोई जरूरत नहीं है आप कॉलम के आधार पर पंक्तियों को फ़िल्टर करने का इरादा नहीं
select ActionName from [UserAction] where UserID = @UserID
हैं: उदाहरण के लिए, आप निम्न क्वेरी को चलाने के लिए जा रहे हैं। और यहां तक कि यदि आप करते हैं तो यह केवल तभी लायक है जब आपके पास 20 से 30 पंक्तियां हों।
क्या आप सुनिश्चित हैं कि जब मैं UserAction पर कोई प्रविष्टि निष्पादित करता हूं तो इंडेक्स विदेशी कुंजी सत्यापन के दौरान उपयोगी नहीं होगा? – GRGodoi
नहीं। तालिका और कॉलम के विरुद्ध सत्यापन किया जाता है जिसमें प्राथमिक कुंजी या अद्वितीय बाधा होती है (उदा। [उपयोगकर्ता]। [आईडी])। [UserAction] तालिका के उपयोगकर्ता आईडी कॉलम को सत्यापित करने की कोई आवश्यकता नहीं है। आप केवल उस कॉलम का संदर्भ ले सकते हैं जिसमें प्राथमिक कुंजी या अनन्य बाधा है, इसलिए इसे हमेशा अनुक्रमित किया जाता है। – ItsMe
विचार करने की दूसरी कार्रवाई 'उपयोगकर्ता' से पंक्तियों को हटा रही है, जो इंजन को 'उपयोगकर्ता आईडी' के आधार पर 'उपयोगकर्ता क्रिया' में पंक्तियों की तलाश करने का कारण बनती है। –
MSDN से: FOREIGN KEY Constraints
एक विदेशी कुंजी पर एक सूचकांक बनाया जा रहा है निम्नलिखित कारणों के लिए अक्सर उपयोगी है:
- परिवर्तन करने के लिए प्राथमिक कुंजी बाधाओं संबंधित तालिकाओं में विदेशी कुंजी बाधाओं के साथ जाँच कर रहे हैं।
- विदेशी कुंजी कॉलम अक्सर मानदंडों में शामिल होने के लिए उपयोग किए जाते हैं जब संबंधित तालिकाओं से डेटा को प्राथमिक या अद्वितीय कुंजी कॉलम या अन्य तालिका में कॉलम के साथ एक तालिका के विदेशी कुंजी बाधा में कॉलम या कॉलम से मेल करके क्वेरी में जोड़ा जाता है।
- 1. क्या प्रत्येक तालिका में प्राथमिक कुंजी होनी चाहिए?
- 2. SQL सर्वर प्रबंधन स्टूडियो में विदेशी कुंजी बनाना
- 3. एसवीएन/वर्जन वाली फ़ाइल में टिप्पणी करने वाली टिप्पणी में क्या जानकारी होनी चाहिए?
- 4. क्या विदेशी कुंजी SQL सर्वर में स्वचालित रूप से अनुक्रमित हैं?
- 5. क्या हाइबरनेट विदेशी कुंजी ओवरलैप करने में सक्षम होना चाहिए?
- 6. मैं SQL सर्वर में एक विदेशी कुंजी कैसे छोड़ूं?
- 7. प्रत्येक विदेशी कुंजी पर एक इंडेक्स जोड़ने के लिए स्क्रिप्ट?
- 8. Sql सर्वर मिलान
- 9. SQL सर्वर अनुक्रमणिका छोटी संख्याएं
- 10. क्या मुझे विदेशी कुंजी का उपयोग करना चाहिए?
- 11. मिलान करने वाली ब्रेस
- 12. SQL सर्वर - सभी विदेशी कुंजी निर्भरताओं को देखें
- 13. एसक्यूएल सर्वर प्रतिकृति विदेशी कुंजी
- 14. SQL सर्वर
- 15. क्या विदेशी कुंजी तालिका प्राथमिक कुंजी बननी चाहिए?
- 16. खराब प्रदर्शन करने वाली क्वेरी को अनुकूलित करने के लिए किन कदमों की आवश्यकता होनी चाहिए?
- 17. क्या SQL सर्वर दृश्यों में प्राथमिक और विदेशी कुंजी हो सकती है?
- 18. SQL सर्वर 2008
- 19. क्या मुझे वास्तव में विदेशी कुंजी का उपयोग करना चाहिए?
- 20. मिलान करने वाली फ़ज़ी स्ट्रिंग्स
- 21. प्राथमिक, अद्वितीय और विदेशी कुंजी बाधाओं, और अनुक्रमणिका के बीच क्या अंतर है?
- 22. एसक्यूएल सर्वर विदेशी कुंजी बाधा लाभ
- 23. क्या एक विदेशी कुंजी स्वचालित रूप से एक अनुक्रमणिका बनाती है?
- 24. Django: विशिष्ट विदेशी कुंजी
- 25. विदेशी कुंजी
- 26. एसक्यूएल सर्वर 2005: निरर्थक विदेशी कुंजी बाधा
- 27. SQL सर्वर
- 28. ओरेकल सभी विदेशी कुंजी संदर्भ
- 29. SQL सर्वर अनुक्रमणिका के साथ एक INCLUDE कॉलम का उपयोग करने का क्या फायदा है?
- 30. एक ही समय में प्राथमिक और विदेशी कुंजी
कुछ मामलों में यह एक अच्छा अभ्यास है, लेकिन * हर * विदेशी कुंजी के लिए नहीं। –