मार्क एस ने अपने पद में क्या उल्लेख किया है, इस बारे में एक बहुत ही महत्वपूर्ण नोट जोड़ने के लिए। प्रश्न में उल्लिखित विशिष्ट SQL स्क्रिप्ट में आप अपनी डेटा पंक्तियों और अनुक्रमणिका डेटा संरचना को संग्रहीत करने के लिए दो अलग-अलग फ़ाइल समूहों का उल्लेख नहीं कर सकते हैं।
इस तथ्य के कारण इस तथ्य के कारण क्यों है कि इस मामले में बनाई गई इंडेक्स आपके प्राथमिक कुंजी कॉलम पर क्लस्टर इंडेक्स है। क्लस्टर्ड इंडेक्स डेटा और आपकी तालिका की डेटा पंक्तियां अलग-अलग फ़ाइल समूहों पर कभी भी नहीं हो सकती हैं।
तो यदि आपके डेटाबेस पर दो फ़ाइल समूह हैं उदा। प्राथमिक और माध्यमिक नीचे दी गई स्क्रिप्ट आपके डेटा डेटा और क्लस्टर किए गए इंडेक्स डेटा को प्राथमिक फ़ाइल समूह पर ही संग्रहीत करेगी, भले ही मैंने तालिका डेटा के लिए एक अलग फ़ाइल समूह ([SECONDARY]
) का उल्लेख किया हो। अधिक दिलचस्प बात यह है कि स्क्रिप्ट सफलतापूर्वक भी चलती है (जब मैं इसे एक त्रुटि देने की उम्मीद कर रहा था क्योंकि मैंने दो अलग-अलग फ़ाइल समूह दिए थे: पी)। एसक्यूएल सर्वर चुपचाप और चतुराई से दृश्य के पीछे चाल करता है।
CREATE TABLE [dbo].[be_Categories](
[CategoryID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_be_Categories_CategoryID] DEFAULT (newid()),
[CategoryName] [nvarchar](50) NULL,
[Description] [nvarchar](200) NULL,
[ParentID] [uniqueidentifier] NULL,
CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED
(
[CategoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [SECONDARY]
GO
नोट: आपका सूचकांक एक अलग फ़ाइल समूह सूचकांक बनाया जा रहा ही है, तो पर निवास कर सकते हैं गैर क्लस्टर प्रकृति में है।
नीचे स्क्रिप्ट जो बनाता है एक गैर क्लस्टर सूचकांक [SECONDARY]
फ़ाइल समूह पर बनाया जाएगा बजाय जब तालिका डेटा पहले से ही [PRIMARY]
फ़ाइल समूह पर रहता है:
CREATE NONCLUSTERED INDEX [IX_Categories] ON [dbo].[be_Categories]
(
[CategoryName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Secondary]
GO
आप कैसे गैर भंडारण के बारे में अधिक जानकारी प्राप्त कर सकते एक अलग फ़ाइल समूह पर क्लस्टर्ड इंडेक्स आपके प्रश्नों को बेहतर प्रदर्शन करने में मदद कर सकता है। Here एक ऐसा लिंक है।
इसका भी अर्थ है कि यह आमतौर पर ** बेकार है और स्क्रिप्ट से ** सुरक्षित रूप से हटाया जा सकता है। – MGOwen
हां, वैसे ही आप वैरिएबल प्रारंभिकताओं को 0 और झूठी में छोड़ सकते हैं, क्योंकि यह सिर्फ डिफ़ॉल्ट है, है ना? –
@MarkSowul जब तक आपके पास प्रदर्शन को अनुकूलित करने के लिए इसका उपयोग करने का कोई अच्छा कारण न हो, हाँ, इसे छोड़ना और डिफ़ॉल्ट होने देना ठीक है। (इसलिए "आमतौर पर" एमजीओवेन शामिल थे।) '0' या' झूठी 'में चर शुरू करना यह सुनिश्चित करने के बारे में है कि आपका कोड ज्ञात स्थिति में चल रहा है, जो एक तार्किक और शुद्धता चिंता है और अनुकूलन चिंता नहीं है। – jpmc26