2016-11-25 59 views
2

我有一個約17百萬的交易數據表。它在Key列上聚集了Key和Non Clustered密鑰。要簡單地選擇它也需要11分鐘來檢索數據,而對於DML操作來說,這需要花費很長時間。簡單的選擇是在桌子上花費大量時間

簡單的選擇

Select * from TransactionTable 

人們會問你已經從你的身邊做了什麼

1)我已經創建的索引(羣集和非羣集)使用DM

2)訪問物理統計我檢查過表是否分散了?

3)在做DML操作之前,我重新組織了索引。

請給我建議的方式

+0

您是否選擇了全部1700萬個*? – artm

+1

你忘記提及查詢本身。如果它是'select * from table',那麼由於您選擇了大量的數據,所以沒有任何idex會幫助您。 –

+0

@AndyKorneyev簡單的選擇只是檢索數據 – mohan111

回答

1

我只能認爲,試圖通過調整數據類型的最低要求,以減少表的大小。如果您有很多空值,請嘗試使用稀疏列。

+0

請您詳細說明 – mohan111

+0

例如,如果您沒有保存unicode文本並且保持數據長度達到最低要求,請不要在int值足夠的情況下使用bigint,或者使用unicode類型。如果列中有大量空值,請在列屬性中將Sparse設置爲True。它會減少表格的整體大小。 – cloudsafe

1

什麼可能會幫助你,保持數據壓縮。
如果我沒有記錯的話,你必須重新填充表格。
然而,更有趣的是,你將如何處理數據。

+0

你能告訴我壓縮的確切用法嗎? – mohan111

+0

@ mohan111。忘記數據庫,並告訴我什麼是合適的用途。 –

+0

我知道壓縮的含義,但在這種情況下數據壓縮 – mohan111