2012-08-07 79 views
4

我要給你分配任務,以提高對錶的夫妻數據管理理線(數據編檔保存) 表像200GB分區大表 - 索引

我現在閱讀有關表分區和最佳實踐 和遠因爲我現在知道這個過程是這樣

  • 創建文件組和文件
  • 創建分區函數
  • 分區方案 - (圖間隔appopriate fileg roups)
  • 重新創建聚集索引 - 這是當下時表物理移動到另一個文件
  • 利潤:)

,但不能找到一個信息 正在發生的事情與此現有的非聚集索引點? 從這裏:http://technet.microsoft.com/en-us/library/ms187526(v=sql.105).aspx 我發現

雖然分區索引可以獨立於它們的基表來實現的,它通常是有道理的設計分區表,然後在表上創建一個索引。當您這樣做時,SQL Server會自動使用與表相同的分區方案和分區列來對索引進行分區。結果,索引按照與表格基本相同的方式分區。這使索引與表格對齊。

,另一個

分區時唯一的非聚集索引,索引鍵必須包含分區列。在對非唯一非聚簇索引進行分區時,SQL Server默認添加分區列作爲索引的非鍵(包含)列,以確保索引與基表對齊。如果索引中已存在索引,則SQL Server不會將分區列添加到索引。

但沒有這個參考我的問題 我一定要明確創建分區函數爲現有的非聚集索引這確實/犯規有分區列在他們的定義是什麼?

可以說,我們有表像

表A - 在col1 和非 COL1 COL2 COL3

與聚集索引聚集在第3欄第 上主分區

什麼事情發生分區後在col3上有非聚簇索引,它是否與表對齊或仍位於PRIMARY分區

回答

3

你應該調整你的索引。有兩個主要的力量將你拉向這個方向:

對於這兩種對齊和不結盟的索引,存儲需求可能 更大如果SQL Server應用的並行度,以構建 操作的多處理器計算機上。這是因爲並行度越大,內存需求越大。對於 例如,如果SQL Server設置的並行度的4個,100個分區非對準 分割索引需要 四個處理器足夠的存儲器來同時4,000頁,或16,000頁排序。 如果分區索引是對齊的,則將內存需求減少到排序40個頁面的160個(4 * 40)頁面的四個處理器。

在你的情況下,這意味着明確地向每個非聚集索引添加分區列,並在與基表(聚簇索引)相同的分區方案上聲明每個非聚集索引。不要嘗試爲非聚集索引創建不同的分區函數/方案。將分區列添加到每個索引中會在數據模型中產生深遠的影響,例如。您將不再能夠宣佈不包含分區列主鍵約束(這漣漪把所有的外鍵定義引用分區表!),但是這是你已經買成價格,當你接受分區作爲解決方案,請參閱How To Decide if You Should Use Table Partitioning

2

通常spea國王通常會刪除所有非聚集索引,並在新計劃中重新創建它們。這將按照與聚集索引(和行數據)相似的方式將它們拆分爲表格分區。

如果你不這樣做,他們將留坐在原來的文件組(小學或地方)