天天看點

分區表和分區視圖的優劣對比

比較分區表和分區視圖

分區視圖在 SQL Server 2005 中仍然可用,仍可以作為在資料倉庫中進行分區時的一項較好的選擇。大多數情況下,分區表将更易于管理。下表概要列出了兩種方法的優、缺點:

表 1:SQL Server 2005 分區表與分區視圖

功能 分區表 分區視圖
表的維護 表作為單個實體來管理。 每個參與的表各自都是一個實體,必須對其進行中繼資料更改。
索引 每個分區必須具有相同的索引。 每個表可以具有各自的索引政策。
實作 兩者在實作的複雜程度方面大緻相同。發生問題時,分區表會更明确地引發錯誤。 可能會存在隐蔽的問題使分區視圖無法按預期進行操作。一個常見問題是建立檢查限制而沒有檢查目前值。分區視圖能夠成功實作,但由于不明原因而不能正确進行優化。
編譯時間 由于所有分區的索引方式都一樣,是以優化器可以對每個分區使用相同的執行計劃,進而使編譯時間大大縮短。 由于分區可以具有不同的索引,是以優化器必須針對每個表(分區)來估計最佳執行計劃。當分區視圖中存在很多表時,編譯時間将會很長。
加載 可以從外部加載分區,進而将對表目前使用者的影響降至最低。 可以從外部加載表,進而将對視圖目前使用者的影響降至最低。
切換入新資料 是一種快捷的中繼資料操作,将自然進行排隊。 是一種中繼資料操作,但是 ALTER VIEW 語句會無限期地等待 SCHEMA 鎖。
可更新性 除了建立分區表所需的規則以外,不必遵守其他特殊規則來使該表可更新。分區表可以具有辨別列,不需要主鍵等。 存在一些使得分區視圖難以具備可更新性的限制,例如參與的表沒有辨別列并且存在主鍵。這通常意味着必須直接更新基礎表,這樣就使得 INSERT 和 UPDATE 的編碼複雜化。
備份/還原

可以單獨或一起備份/還原表的分區,具體取決于檔案組的實作方案。

注: 除非檔案組被标記為隻讀,否則還原檔案組需要從備份點開始重新應用事務日志。

可以單獨或一起備份/還原構成分區視圖的各個表,具體取決于檔案組的實作方案。

分區視圖表還可以駐留在單獨的資料庫中,這樣就可以對單獨的分區進行單獨的資料庫備份。

注:除非檔案組被标記為隻讀,否則還原檔案組需要從備份點開始重新應用事務日志。

資料庫内容 一個分區表中的所有分區必須駐留在同一個資料庫中。 參與分區視圖的各個表可以駐留在不同的資料庫中。這就使得對曆史記錄段的備份和還原操作非常容易實作。
查詢并行處理 在并行查詢計劃中,各個分區是并行處理的單元。如果查詢僅涉及單個分區,将不通過并行處理通路該表。 将單獨考察分區視圖中的每個表,以确定是否進行并行查詢通路。如果查詢僅涉及單個表,則可以通過并行處理通路該表。
批量加載 分區表可以直接作為批量插入/備份操作的目标。 分區視圖不能作為批量插入/備份操作的目标 – 目标必須是視圖中的各個表。