SQL Server में Clustered और Non-Clustered Indexes बनाना



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

एक SQL सर्वर में, दो प्रकार के सूचकांक मौजूद हैं; गुच्छेदार और गैर-गुच्छेदार सूचकांक। क्लस्टर किए गए अनुक्रमणिका और गैर-संकुल अनुक्रमणिका दोनों में एक ही भौतिक संरचना होती है। इसके अलावा, दोनों को बी-ट्री संरचना के रूप में SQL सर्वर में संग्रहीत किया जाता है।



गुच्छेदार सूचकांक:

एक संकुल सूची एक विशेष प्रकार का सूचकांक है जो तालिका में अभिलेखों के भौतिक भंडारण को पुनर्व्यवस्थित करता है। SQL सर्वर के भीतर, डेटाबेस ऑपरेशन को गति देने के लिए इंडेक्स का उपयोग किया जाता है, जिससे उच्च प्रदर्शन होता है। इसलिए, तालिका में केवल एक संकुल सूचकांक हो सकता है, जो आमतौर पर प्राथमिक कुंजी पर किया जाता है। एक गुच्छेदार सूचकांक की पत्ती नोड्स होते हैं 'डेटा पृष्ठ'। एक तालिका में केवल एक संकुल सूचकांक हो सकता है।



बेहतर समझ रखने के लिए हम एक क्लस्टर इंडेक्स बनाते हैं। सबसे पहले, हमें एक डेटाबेस बनाने की आवश्यकता है।



डेटाबेस निर्माण

डेटाबेस बनाने के लिए। राइट-क्लिक करें 'डेटाबेस' ऑब्जेक्ट एक्सप्लोरर में, और चुनें 'नया डेवलपर' विकल्प। डेटाबेस का नाम टाइप करें और ok पर क्लिक करें। डेटाबेस बनाया गया है जैसा कि नीचे दिए गए चित्र में दिखाया गया है।

डिज़ाइन दृश्य का उपयोग करके तालिका निर्माण

अब हम एक टेबल बनाएंगे जिसका नाम है 'कर्मचारी' डिज़ाइन दृश्य का उपयोग करके प्राथमिक कुंजी के साथ। हम नीचे दी गई तस्वीर में देख सकते हैं कि हमने मुख्य रूप से 'आईडी' नाम से फाइल की है और हमने टेबल पर कोई इंडेक्स नहीं बनाया है।



प्राथमिक कुंजी के रूप में आईडी के साथ 'कर्मचारी' नाम की एक तालिका बनाना

आप निम्न कोड को निष्पादित करके एक तालिका भी बना सकते हैं।

USE [परीक्षण] GO SET QUOTED_IDENTIFIER पर GO SATE QUOTED_IDENTIFIER को GO CREATE TABLE [dbo] पर सेट करें। [कर्मचारी] ([आईडी] [int] पहचान (१११) पूर्ण नहीं, [Dep_ID] [int] NULL, [नाम] [ varchar] (२००) NULL, [ईमेल] [varchar] (२५०) NULL, [शहर] [varchar] (२५०) NULL, [पता] [varchar] (५००) NULL, CONSTRAINT [प्राथमिक_केजी_आईडी] PRIMARY KEY CLUSTERED ([ID] ] ASC) के साथ (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] पर [PRIMARY] GO

आउटपुट निम्नानुसार होगा।

प्राथमिक कुंजी के रूप में आईडी के साथ 'कर्मचारी' नाम की एक तालिका बनाना

उपरोक्त कोड ने एक तालिका बनाई है जिसका नाम है 'कर्मचारी' आईडी फ़ील्ड के साथ, प्राथमिक कुंजी के रूप में एक विशिष्ट पहचानकर्ता। अब इस तालिका में, प्राथमिक प्रमुख बाधाओं के कारण कॉलम आईडी पर स्वचालित रूप से एक क्लस्टर इंडेक्स बनाया जाएगा। यदि आप किसी तालिका पर सभी अनुक्रमणिकाएँ देखना चाहते हैं, तो संग्रहीत कार्यविधि चलाएँ 'Sp_helpindex'। निम्नलिखित कोड को नामांकित तालिका पर सभी अनुक्रमित देखने के लिए निष्पादित करें 'कर्मचारी'। यह स्टोर प्रक्रिया इनपुट पैरामीटर के रूप में एक टेबल का नाम लेती है।

USE परीक्षण EXECUTE sp_helpindex कर्मचारी

आउटपुट निम्नानुसार होगा।

'Sp_helpindex' कर्मचारी तालिका पर सभी अनुक्रमित दिखाएगा।

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

तालिका में सभी अनुक्रमों को देखना

जैसा कि यह संकुल सूचकांक है, इसलिए सूचकांक का तार्किक और भौतिक क्रम समान होगा। इसका मतलब है कि यदि किसी रिकॉर्ड में 3 की आईडी है, तो इसे तालिका की तीसरी पंक्ति में संग्रहीत किया जाएगा। इसी तरह, अगर पांचवें रिकॉर्ड में 6 की आईडी है, तो इसे 5 में संग्रहीत किया जाएगावेंतालिका का स्थान। अभिलेखों के क्रम को समझने के लिए, आपको निम्नलिखित स्क्रिप्ट को निष्पादित करने की आवश्यकता है।

उपयोग [परीक्षण] जाओ सेट IDENTITY_INSERT [dbo]। [कर्मचारी] INSERT पर [dbo]। [कर्मचारी] ([आईडी], [Dep_ID], [नाम], [ईमेल], [शहर], [पता]) VALUES ( 8, 6, एन'हम्बैरो एसेवेडो