मेरे पास एक संग्रहीत प्रक्रिया है जो बड़ी मात्रा में डेटा के साथ काम कर रही है। मेरे पास एक डेटा तालिका में डेटा डाला जा रहा है। घटनाओं के समग्र प्रवाह जब सबसे अच्छा समय मेरी #TempTable मेज पर एक प्राथमिक कुंजी बनाने के लिए हैएक अस्थायी तालिका पर प्राथमिक कुंजी बनाना - कब?
CREATE #TempTable (
Col1 NUMERIC(18,0) NOT NULL, --This will not be an identity column.
,Col2 INT NOT NULL,
,Col3 BIGINT,
,Col4 VARCHAR(25) NOT NULL,
--Etc...
--
--Create primary key here?
)
INSERT INTO #TempTable
SELECT ...
FROM MyTable
WHERE ...
INSERT INTO #TempTable
SELECT ...
FROM MyTable2
WHERE ...
--
-- ...or create primary key here?
मेरा प्रश्न की तरह कुछ है? मैंने सिद्धांत दिया कि मुझे सभी डेटा डालने के बाद प्राथमिक कुंजी बाधा/अनुक्रमणिका बनाना चाहिए क्योंकि इंडेक्स को पुनर्गठित करने की आवश्यकता है क्योंकि प्राथमिक कुंजी जानकारी बनाई जा रही है। लेकिन मुझे एहसास हुआ कि मेरी रेखांकन धारणा गलत हो सकती है ...
यदि यह प्रासंगिक है, तो मेरे द्वारा उपयोग किए जाने वाले डेटा प्रकार वास्तविक हैं। #TempTable
तालिका में, Col1
और Col4
मेरी प्राथमिक कुंजी बनायेगा।
अद्यतन: मेरे मामले में, मैं स्रोत तालिकाओं की प्राथमिक कुंजी को डुप्लिकेट कर रहा हूं। मुझे पता है कि मेरे प्राथमिक कुंजी को बनाए रखने वाले क्षेत्र हमेशा अद्वितीय होंगे। अगर मैं अंत में प्राथमिक कुंजी जोड़ता हूं तो मुझे असफल परिवर्तन तालिका के बारे में कोई चिंता नहीं है।
हालांकि, यह एक तरफ मेरा प्रश्न अभी भी खड़ा है, जो तेजी से मानते हैं कि दोनों सफल होंगे?
पीएस मुझे खेद है अगर यह एक डुप्लिकेट है। यह इतना बुनियादी है कि यह हो सकता है, लेकिन मुझे ऐसा कुछ भी नहीं मिला है।
दिलचस्प। धन्यवाद। सहायक। क्या आप शायद कुछ उदाहरणों के साथ विस्तार कर सकते हैं? क्लस्टर इंडेक्स के लिए –
@ कैड, आपका मतलब डिस्क पर भौतिक क्रम है, तार्किक क्रम नहीं (तालिकाओं में तार्किक क्रम नहीं है)। –
नहीं, डिस्क पर भौतिक क्रम कुछ भी हो सकता है। क्लस्टर्ड इंडेक्स केवल ढेर में एक ब्रीटी इंडेक्स में पत्तियों में संग्रहीत डेटा है। SQL सर्वर और डिस्क पर अभी भी सगाई हो सकती है। –