資料庫索引的作用和優點缺點(三)

2021-08-29 21:08:15 字數 2519 閱讀 5605

索引調整嚮導

索引調整嚮導是一種工具,可以分析一系列資料庫的查詢語句,提供使用一系列資料庫索引的建議,優化整個查詢語句的效能。對於查詢語句,需要指定下列內容:

查詢語句,這是將要優化的工作量

包含了這些表的資料庫,在這些表中,可以建立索引,提高查詢效能

在分析中使用的表

在分析中,考慮的約束條件,例如索引可以使用的最大磁碟空間

這 裡指的工作量,可以來自兩個方面:使用sql server捕捉的軌跡和包含了sql語句的檔案。索引調整嚮導總是基於乙個已經定義好的工作量。如果乙個工作量不能反映正常的操作,那麼它建議使用的索 引不是實際的工作量上效能最好的索引。索引調整嚮導呼叫查詢分析器,使用所有可能的組合評定在這個工作量中每乙個查詢語句的效能。然後,建議在整個工作量 上可以提高整個查詢語句的效能的索引。如果沒有供索引調整嚮導來分析的工作量,那麼可以使用**器立即建立它。一旦決定跟蹤一條正常資料庫活動的描述樣 本,嚮導能夠分析這種工作量和推薦能夠提高資料庫工作效能的索引配置。

索引調整嚮導對工作量進行分析之後,可以檢視到一系列的報告,還可以使該嚮導立即建立所建議的最佳索引,或者使這項工作成為一種可以排程的作業,或者生成乙個包含建立這些索引的sql語句的檔案。

索引調整嚮導允許為sql server資料庫選擇和建立一種理想的索引組合和統計,而不要求對資料庫結構、工作量或者sql server內部達到專家的理解程度。總之,索引調整嚮導能夠作到以下幾個方面的工作:

通過使用查詢優化器來分析工作量中的查詢任務,向有大量工作量的資料庫推薦一種最佳的索引混合方式

分析按照建議作出改變之後的效果,包括索引的用法、表間查詢的分布和大量工作中查詢的工作效果

為少量查詢任務推薦調整資料庫的方法

通過設定高階選項如磁碟空間約束、最大的查詢語句數量和每個索引的最多列的數量等,允許定製推薦方式

**器

圖 解器能夠實時抓取在伺服器中執行的連續,可以選取希望監測的專案和事件,包括transact-sql語句和批命令、物件的用法、鎖定、安全事件和 錯誤。**器能夠過濾這些事件,僅僅顯示使用者關心的問題。可以使用同一臺伺服器或者其他伺服器重複已經記錄的跟蹤事件,重新執行那些已經作了記錄的命令。 通過集中處理這些事件,就能夠很容易監測和除錯sql server中出現的問題。通過對特定事件的研究,監測和除錯sql server問題變得簡單多了。

查詢處理器

查詢處理器是一種可以完成許多任務作的多用途的工具。在查詢處理器中,可以互動式地輸入和 執行各種transact-sql語句,並且在乙個視窗中可以同時 檢視transact-sql語句和其結果集;可以在查詢處理器中同時執行多個transact-sql語句,也可以執行指令碼檔案中的部分語句;提供了一 種圖形化分析查詢語句執行規劃的方法,可以報告由查詢處理器選擇的資料檢索方法,並且可以根據查詢規劃調整查詢語句的執行,提出執行可以提高效能的優化索 引建議,這種建議只是針對一條查詢語句的索引建議,只能提高這一條查詢語句的查詢效能。

系統為每乙個索引建立乙個分布頁,統計資訊就是指儲存 在分布頁上的某乙個表中的乙個或者多個索引的關鍵值的分布資訊。當執行查詢語句時,為了提高查詢速度 和效能,系統可以使用這些分布資訊來確定使用表的哪乙個索引。查詢處理器就是依賴於這些分布的統計資訊,來生成查詢語句的執行規劃。執行規劃的優化程度依 賴於這些分布統計資訊的準確步驟的高低程度。如果這些分布的統計資訊與索引的物理資訊非常一致,那麼查詢處理器可以生成優化程度很高的執行規劃。相反,如 果這些統計資訊與索引的實際儲存的資訊相差比較大,那麼查詢處理器生成的執行規劃的優化程度則比較低。

查詢處理器從統計資訊中提取索引關鍵字 的分布資訊,除了使用者可以手工執行update statistics之外,查詢處理器還可以自動收集統計這些分布資訊。這樣,就能夠充分保證查詢處理器使用最新的統計資訊,保證執行規劃具有很高的優化 程度,減少了維護的需要。當然,使用查詢處理器生成的執行規劃,也有一些限制。例如,使用執行規劃只能提高單個查詢語句的效能,但是可能對整個系統的效能 產生正面的或者付面的影響,因此,要想提高整個系統的查詢效能,應該使用索引調整嚮導這樣的工具。

結論 在以前的sql server版本中,在乙個查詢語句中,乙個表上最多使用乙個索引。而在sql server 7.0中,索引操作得到了增強。sql server現在使用索引插入和索引聯合演算法來實現在乙個查詢語句中的可以使用多個索引。共享的行識別符號用於連線同乙個表上的兩個索引。如果某個表中有一 個聚簇索引,因此有乙個聚簇鍵,那麼該錶上的全部非聚簇索引的葉節點使用該聚簇鍵作為行定位器,而不是使用物理記錄識別符號。如果表中沒有聚簇索引,那麼非 聚簇索引繼續使用物理記錄識別符號指向資料頁。在上面的兩種情況中,行定位器是非常穩定的。當聚簇索引的葉節點分開時,由於行定位器是有效的,所以非聚簇索 引不需要被修改。如果表中沒有聚簇索引,那麼頁的分開就不會發生。而在以前的版本中,非聚簇索引使用物理記錄識別符號如頁號和行號,作為行的定位器。例如, 如果聚簇索引(資料頁)發生分解時,許多記錄行被移動到了乙個新的資料頁,因此有了多個新的物理記錄識別符號。那麼,所有的非聚簇索引都必須使用這些新的物 理記錄識別符號進行修改,這樣就需要耗費大量的時間和資源。

索引調整嚮導無論對熟練使用者還是新使用者,都是乙個很好的工具。熟練使用者可以使用該嚮導建立乙個基本的索引配置,然後在基本的索引配置上面進行調整和定製。新使用者可以使用該嚮導快速地建立優化的索引。

資料庫索引的作用和優點缺點

為什麼要建立索引呢?這是因為,建立索引可以大大提高系統的效能。第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快 資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序 子句進行...

資料庫索引的作用和優點缺點

為什麼要建立索引呢?這是因為,建立索引可以大大提高系統的效能。第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快 資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序 子句進行...

資料庫索引的作用和優點缺點

為什麼要建立索引呢?這是因為,建立索引可以大大提高系統的效能。第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快 資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序 子句進行...