एसक्यूएल (सर्वर 2008) का मेरा निम्न स्तर का ज्ञान सीमित है, और अब हमारे डीबीए द्वारा चालान किया जा रहा है। मुझे समझाएं (मैंने इस उम्मीद में स्पष्ट बयानों का उल्लेख किया है कि मैं सही हूं, लेकिन अगर आपको कुछ गलत दिखाई देता है, तो कृपया मुझे बताएं)
हमारे पास एक टेबल है जो लोगों के लिए 'कोर्ट ऑर्डर' रखती है। जब मैंने तालिका बनाई, (नाम: कोर्टऑर्डर), मैंने इसे इस तरह बनाया:
CREATE TABLE dbo.CourtOrder
(
CourtOrderID INT NOT NULL IDENTITY(1,1), (Primary Key)
PersonId INT NOT NULL,
+ around 20 other fields of different types.
)
मैंने तब प्राथमिक कुंजी (दक्षता के लिए) में एक गैर-संकुल सूचकांक लागू किया था। मेरे कारण यह है कि यह एक अद्वितीय क्षेत्र (प्राथमिक कुंजी) है, और इसे अनुक्रमित किया जाना चाहिए, मुख्य रूप से चयन उद्देश्यों के लिए, जैसा कि हम अक्सर करते हैंSelect from table where primary key = ...
मैंने तब PersonId पर CLUSTERED इंडेक्स लागू किया। इसका कारण शारीरिक रूप से किसी व्यक्ति विशेष के लिए आदेशों का समूह था, क्योंकि किसी व्यक्ति के लिए काम का अधिकांश हिस्सा आदेश प्राप्त कर रहा है। इसलिए,select from mytable where personId = ...
मुझे अब इस पर खींच लिया गया है। मुझे बताया गया है कि हमें क्लस्टर कुंजी को प्राथमिक कुंजी और सामान्य सूचकांक पर रखना चाहिए। जो मुझे बहुत अजीब लगता है। सबसे पहले, आप एक अनूठे कॉलम पर एक संकुल सूचकांक क्यों डालेंगे? यह क्या है? निश्चित रूप से यह क्लस्टर इंडेक्स की बर्बादी है? मेरा मानना था कि एक सामान्य सूचकांक का उपयोग एक अद्वितीय स्तंभ पर किया जाएगा। इसके अलावा, इंडेक्स को क्लस्ट करने का मतलब होगा कि हम एक अलग कॉलम (एक टेबल प्रति, सही?) को क्लस्टर नहीं कर सकते।
मुझे बताया जा रहा है कि मैंने एक गलती की है, उनका मानना है कि वे व्यक्तिगत सूचकांक पर एक सम्मिलित सूचकांक डालने से आवेषण को धीमा कर देंगे। एक चयन की गति में 5% लाभ के लिए, हमें आवेषण और अद्यतनों पर गति में 95% की गिरावट होगी। क्या यह सही और वैध है?
वे कहते हैं कि क्योंकि हम personId को क्लस्टर करते हैं, SQL सर्वर को डेटा को फिर से व्यवस्थित करना होता है जब हम कभी-कभी सम्मिलित करते हैं या व्यक्तिवाद में बदलाव करते हैं।
तो फिर मैंने पूछा है, कि SQL को CLUSTERED INDEX की अवधारणा क्यों होगी, अगर यह इतना धीमा है? क्या यह उतना धीमा है जितना वे कह रहे हैं? मुझे इष्टतम प्रदर्शन प्राप्त करने के लिए अपने अनुक्रमित को कैसे सेटअप करना चाहिए? मैंने सोचा होगा चयन का उपयोग INSERT से अधिक किया जाता है ... लेकिन वे कहते हैं कि हम INSERTS पर मुद्दों को लॉक कर रहे हैं ...
उम्मीद है कि कोई मेरी मदद करे।