क्या मुझे प्राथमिक कुंजी जोड़ने से पहले या बाद में पृष्ठ स्तर संपीड़न जोड़ना चाहिए?


14

परिस्थिति

  • Sql Server 2008 एंटरप्राइज़ पर डेटा वेयरहाउस
  • 60+ कॉलम के साथ 36+ मिलियन पंक्ति हीप (पूछें नहीं)
  • 750k मासिक जोड़ा गया
  • कोई प्राथमिक कुंजी परिभाषित नहीं है (मैंने अब एक की पहचान की है)
  • कोई संपीड़न नहीं

मैं क्या करने की सोच रहा हूँ (इस क्रम में)

  • पृष्ठ स्तर संपीड़न जोड़ें
  • पीके जोड़ें
  • कई गैर-संकुल अनुक्रमणिका जोड़ें
  • इसे जितनी जल्दी हो सके करें

सवाल


मैं फिलहाल किस ओर झुक रहा हूं

-- Add page level compression
alter table     dbo.TableName
rebuild with    (data_compression = page)
; 
go

-- Add primary key
alter table             dbo.TableName
add constraint          PK_TableName
primary key clustered   (<Columns>)
;
go

-- Add NC_IXs here
...
...

Ive ने यहां (PK निर्माण प्रलेखन) और यहां देखा (ALTER TABLE प्रलेखन) देखा , लेकिन किसी भी सूचकांक को तालिका संपीड़न सेटिंग्स के अनुक्रमणित किया या नहीं, इसके बारे में कुछ भी निश्चित नहीं देखा जा सकता है। इस विशेष प्रश्न का उत्तर "नहीं, संपीड़न विरासत में नहीं मिला है", यहां dba.stackexchange पर पाया गया

जवाबों:


12

गुच्छेदार सूचकांक वास्तव में तालिका है। इस धारणा पर कि आपकी प्राथमिक कुंजी का क्लस्टर किया गया है, तो मैं दो चरणों में इसे करने के बजाय पृष्ठ स्तर संपीड़न के साथ एक संकुल प्राथमिक कुंजी बनाऊंगा।

-- Add primary key
ALTER TABLE             dbo.TableName
ADD CONSTRAINT          PK_TableName
PRIMARY KEY CLUSTERED   (<Columns>)
WITH (DATA_COMPRESSION = PAGE)
;

मैं लगभग 100k पंक्तियों को एक अस्थायी (अस्थायी भौतिक नहीं # अस्थायी) तालिका में कॉपी करूंगा और कुछ परीक्षण चलाऊंगा। संपीड़न को पहले चलाने की कोशिश करें, पहले कुंजी को क्लस्टर किया जाए, उन्हें एक चरण के रूप में करने का प्रयास करें। देखें क्या तेजी से चलता है। मुझे लगता है कि यह व्यक्तिगत रूप से एक कदम होगा :)।


2

किसी भी तरह से, पृष्ठ संपीड़न एक बहुत आसपास डेटा फेरबदल करने के लिए जा रहा है। मुझे लगता है कि संपीड़न करने से पहले परिणाम कम से कम I / O का परिणाम होगा क्योंकि क्लस्टरिंग ऑपरेशन संपीड़ित पृष्ठों को पढ़ रहा होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.