यह आलेख बताता है कि SQL सर्वर में अनुक्रमणिका कैसे बनाएं, नाम बदलें और हटाएं।
इंडेक्स क्या है - SQL सर्वर में इंडेक्स?
इंडेक्सिंग वह तरीका है जिसका उपयोग रिकॉर्ड्स को तेजी से प्राप्त करने के लिए किया जाता है। इंडेक्स प्रत्येक मान को इंगित करता है जो अनुक्रमित कॉलम में दिखाई देता है।
एक अनुक्रमणिका बनाएं
सिंटैक्स
CREATE [UNIQUE] [ CLUSTERED | NONCLUSTERED ] INDEX ten_chimuc
] [ CLUSTERED | NONCLUSTERED ] INDEX ten_chimuc
ON ten_bang ( cot1 [ASC | DESC ], . cot_n [ ASC | DESC ] )
[ INCLUDE ( cot1, . cot_n ) ]
[ WHERE dieu_kien ]
[ WITH ( PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| STATISTICS_INCREMENTAL = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = so_toida
| DATA_COMPRESSION = { NONE | PAGE | ROW }
[ ON PARTITIONS ( { so | khoang } ]
[ ON scheme_phandoan ( cot )
| ON fnhomtaptin | ON nhomtaptin_macdinh ]
[ FILESTR
EAM_ON {nhomtaptin | scheme_phandoan }; scheme_phandoan};
अद्वितीय
वैकल्पिक रूप से, इंगित करें कि इंडेक्स कॉलम में मानों का संयोजन अद्वितीय होना चाहिए।
क्लस्टर किया गया
वैकल्पिक रूप से, तार्किक क्रम इंगित करें जो तालिका में पंक्तियों की भौतिक व्यवस्था को निर्धारित करता है (अर्थात तालिका में रिकॉर्ड का क्रम अनुक्रमणिका में फ़ील्ड द्वारा क्रमबद्ध)।
NONCLUSTERED
वैकल्पिक रूप से, उस तार्किक क्रम को इंगित करें जो तालिका में पंक्तियों की भौतिक व्यवस्था को निर्धारित नहीं करता है।
ten_chimuc
उस इंडेक्स का नाम जिसे आप बनाना चाहते हैं
टेन_बैंग
तालिका का नाम या देखें कि सूचकांक किस पर बनाया गया है।
cot1, . cot_n
उसका कॉलम इंडेक्स बनाता है।
ASC | डीईएससी
कॉलम में मानों के लिए क्रम को क्रमबद्ध करें।
INCLUDE (cot1, . cot_n)
वैकल्पिक रूप से, स्तंभ गैर-संकुल सूचकांक के पत्तेदार स्तर में जोड़ने के लिए मुख्य स्तंभ नहीं है।
जहां dieu_kien
वैकल्पिक, एक शर्त है जो निर्धारित करती है कि कौन सी पंक्ति अनुक्रमणिका में शामिल की जाए।
योजना_फानवुंग (खाट) पर
वैकल्पिक रूप से, विभाजन स्थान इंगित करें जो फ़ाइल समूह (फ़ाइल समूह) को निर्धारित करता है जहां विभाजन मैप किया गया है।
nhomtaptin पर
वैकल्पिक रूप से, इंगित करें कि क्या अनुक्रमणिका निर्दिष्ट फ़ाइल समूह पर बनाई जाएगी।
nhomtaptin_macdinh पर
वैकल्पिक, डिफ़ॉल्ट फ़ाइल समूह को इंगित करें।
FILESTREAM_ON {nhomtaptin | खोंगिग्ना_फानवुंग} खोंगिग्ना_फानवुंग}
वैकल्पिक रूप से, क्लस्टर्ड इंडेक्स के लिए FILESTREAM डेटा का स्थान इंगित करें।
SQL सर्वर में अनुक्रमणिका के उदाहरण
CREATE INDEX danhba_chimuc
ON danhba (h
o);
इस उदाहरण में, हम सूची में danhba_chimuc नाम का एक इंडेक्स बनाते हैं, जिसमें खांसी नामक फ़ील्ड भी शामिल है। जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है, 1 से अधिक फ़ील्ड की अनुक्रमणिका बनाई जा सकती है।
CREATE INDEX danhba_chimuc
ON da
(cough, ten);
यह उदाहरण नामों की सूची में नामba_chimuc की सूची बनाता है, जिसमें दो फ़ील्ड, खांसी और दस शामिल हैं। चूंकि प्रत्येक आइटम के लिए कोई ASC या DESC निर्दिष्ट नहीं किया गया है, डिफ़ॉल्ट क्रम में प्रत्येक फ़ील्ड के साथ बनाई गई अनुक्रमणिका वृद्धिशील है। यदि आप अवरोही क्रम में चाहते हैं, तो आप निम्न कार्य कर सकते हैं।
CREATE INDEX list name
ON danhba (ho DESC, te
n DESC);
उपरोक्त CREATE INDEX कमांड केवल उपयोगकर्ता नाम और _chimuc को अवरोही क्रम में क्रमबद्ध पहले और अंतिम नामों के साथ बनाता है।
अद्वितीय अनुक्रमणिका का उदाहरण
CREATE UNIQUE INDEX danhba_chimucduynhat
ON danhba (ho, ten);
यह उदाहरण नामों की सूची में danh_chimuc नाम की एक अनुक्रमणिका बनाता है जिसमें प्रथम और अंतिम नाम शामिल हैं, और यह सुनिश्चित करता है कि इन दोनों क्षेत्रों का संयोजन अद्वितीय है। क्लस्टर की एक अनूठी अनुक्रमणिका बनाना संभव है ताकि तालिका में पंक्तियों का भौतिक क्रम अनुक्रमणिका के तार्किक क्रम द्वारा तय किया जा सके।
CREATE UNIQUE CLUSTERED INDEX danhba_chimucduynhat
ON danh
three (ho, ten);
इस उदाहरण में नव निर्मित इंडेक्स का नाम danhba_chimucduynhat है जिसमें दो प्रथम और अंतिम नाम फ़ील्ड शामिल हैं, और इसके अनुसार तालिका में पंक्तियों के क्रम को भी बदलता है।पी>
SQL सर्वर में अनुक्रमणिका का नाम बदलें
सिंटैक्स
sp_rename
'tenbang.ten_chi_muc_cu', 'ten_chimuc_moi', 'INDEX';
टेन_बैंग
उस तालिका का नाम जिससे अनुक्रमणिका बनाई गई है।
ten_chimuc_cu
उस इंडेक्स का नाम जिसका आप नाम बदलना चाहते हैं।
ten_chimuc_moi
सूचकांक के लिए नया नाम।
उदाहरण के लिए
sp_rename
'danhba.danhba_chimuc', 'danhba_chimuc_ten', 'INDEX';
यह उदाहरण नंबा टेबल में इंडेक्स का नाम बदलकर danhba_chimuc से listba_chimuc_ten कर देता है।
SQL सर्वर में अनुक्रमणिका हटाएं
सिंटैक्स
DROP INDEX tenbang.ten_chimuc;
टेन_बैंग
उस तालिका का नाम जिससे अनुक्रमणिका बनाई गई है।
ten_chimuc_cu
हटाए जाने वाले इंडेक्स का नाम।
उदाहरण के लिए
DROP INDEX danhba.danhba_chimuc;
यह उदाहरण ba_chimuc नाम के इंडेक्स को हटा देता है।