2012-05-23 121 views
3

起點
我填一個表數據,並以將數據從運行比較跑,我加了一列「運行」(整數)。
我保留了最後5次運行。由於我在表格中運行了2次後仍然超時,我決定在「運行」時對錶格進行分區。分區策略

我做什麼
1.我創建了1000個分區的分區表(我想「跑」是從1到1000),最大隻有5個分區都在那裏,其他995是空的,等待直到下一次運行會放在那裏。
2.我創建了使用上述分區函數的分區方案,並將所有分區(即1000)保留在PRIMARY文件組中。
3.我在「運行」分區表。

結果:不再有超時,但處理時間增加了50%。

問題:在我的分區策略中哪些點不是最理想的?我是否應該創建5個分區,並改變了我對運行進行編號的方式?

回答

6

分區不是性能問題的解決方案。您正在尋找索引。分區會降低處理速度,您希望的最好效果是可以與非分區表進行性能優化。分區非常適合數據管理場景,適用於使用分區切換(ETL或數據過期)的快速數據移動。

你需要調查爲什麼你得到暫停。受過教育的猜測會指示表掃描(即缺少索引)。一個好的方法是Waits and Queues

+0

我得到了超時,因爲對於超過3次運行的ETL過程中的其中一個步驟,表變得太大而無法處理。通過分區,它只處理一個分區,這就是爲什麼分區後我沒有超時(這是我的想法至少)。建立索引,我仍然有超時,可能我應該嘗試在分區後創建索引。我接受性能的下降,我只是想知道我是否能保持低調,改變我的分區方式。 –

+0

顯然,您沒有構建* right *索引。也許是 –

+0

。建設單位將是下一步。問題是如果在分區步驟中可以以其他方式完成。即想象在分區之前和之後沒有索引,是否可以更優化地完成?例如,如果真的需要5個分區,可以建立1000個分區嗎?並感謝您的有效答案和評論! –