程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server性能優化

SQL Server性能優化

編輯:關於SqlServer

一、概述

在數據庫應用中,速度是一個永恆的話題。有許多因素會影響數據庫的性能表現,例如:操作系統,硬件方面的因素,如內存和磁盤空間,訪問數據庫的應用軟件。除此之外,數據庫本身的設計也是一個影響性能的重要因素。

本文要討論的是我們可以采取哪些措施提高SQL Server數據庫的性能。討論的焦點主要集中在SQL Server 2000為視圖創建索引的能力,以及如何使用Index Tuning Wizard(ITW,索引調整向導)優化索引。另外,我們還要討論如何確保查詢充分地利用了索引以及數據庫統計信息。

性能問題應該在數據庫設計的初始階段就開始考慮。不過,即使在數據庫正式開始運行之後,我們仍舊可以進行一些修改,這些修改將顯著地影響數據庫的性能表現。索引是一種優化數據查詢和排序操作的數據庫實體,正確配置的索引能夠使數據庫查詢或更新數據所需要的時間發生巨大的變化,ITW能夠幫助我們確定如何在數據庫中配置索引以獲得最佳的性能。

我們可以讓ITW根據指定的Workload(工作負荷)推薦最佳的數據庫索引配置。Workload是保存到外部文件的SQL腳本或跟蹤結果。ITW的建議是根據給定Workload而提出的最優化建議,因此事先准備合適的基礎數據非常重要。

為ITW創建工作負荷文件最簡單、最全面的方法或許應該是保存由SQL Profiler創建的跟蹤。SQL Profiler是自SQL Server 7.0開始提供的新工具。它能夠用指定的過濾器和條件,記錄服務器的活動情況。使用SQL Profiler為ITW創建跟蹤時,應當確保跟蹤已經記錄了典型的數據庫活動。換句話說,應當選擇一個數據庫負載不是特別繁重、也不是特別輕松的時段進行跟蹤。至於跟蹤要運行多少長時間,這由系統本身的特點決定。有些時候,我們可能只需跟蹤數小時就可以得到系統典型活動情況的記錄;有些時候,我們可能要讓跟蹤持續幾天,才能記錄下數據庫中所有典型的活動情況。

二、索引調整向導

准備好工作負荷文件之後,我們就可以在Enterprise Manager的樹形視圖中選擇服務器啟動ITW。從Tools菜單選擇Wizards,在樹形視圖中找到Management節點,選擇Index Tuning Wizard,此時我們就可以看到ITW的歡迎屏幕。

ITW的第二個屏幕讓我們指定要分析的是哪一個服務器和數據庫。在這個屏幕上,我們還有另外兩個選項:Keep All Existing Indexes(保留現有索引),Perform Thorough Analyses(進行完全分析)。清除Keep All Existing Indexes選項使得ITW能夠提出最優索引建議,但此時ITW可能建議刪除或者修改現有的某些索引。如果你不想修改現有的索引,請保留這個選項的選中狀態。選中Perform Thorough Analyses選項使得ITW進行最廣泛、深入的分析。雖然進行完全分析可能提高分析結果的質量,但它一般需要較長的時間才能完成;而且完全分析運行時,它很可能導致服務器負載過重。由於這些原因,如果你需要執行完全分析,那麼最好在測試服務器上進行,或者在正式提供服務的機器上,選擇一個比較空閒的時段進行。

ITW的第三個屏幕讓我們指定對哪一個workload進行分析。如果你使用的是SQL Profiler創建的文件,請選擇My Workload File選項按鈕,然後在文件對話框中找到以前保存的跟蹤文件。在這個屏幕中,點擊Advanced Options命令按鈕可以設置一些高級選項。這些選項包括:被推薦的索引可以使用的最大磁盤空間總量,工作負荷文件中查詢取樣的最大數量。

在第四個屏幕中,我們可以指定ITW應該對哪個或者哪些表的索引提出建議。只選擇那些相關的表有利於節省時間,而且它有助於我們把注意力集中到特定的問題之上。不過,如果要讓ITW對整個數據庫的優化提出建議,我們應該選中數據庫裡面所有的表。

ITW的下一個屏幕根據我們設定的條件,顯示出它對索引配置的建議(參見圖1)。我們可以選擇立即執行它提出的建議,或者計劃在以後執行,或者把執行腳本保存到外部文件。

圖1

ITW不會對主鍵或者其他唯一性索引提出建議,也不會對系統表的索引提出建議。ITW的其他局限還包括:在給定的工作負荷中,它分析的索引不能超過32767個;不能對SQL Server 6.5或者更早版本創建的數據庫提出索引建議。

注意,ITW是以用戶所提供數據的樣本為基礎提出索引配置建議。由於這個原因,你可能會發現:如果讓ITW對同一個工作負荷分析多次,它可能會提出多種不同的索引配置建議。如果ITW不能提出任何建議,它可能是由於下面兩種原因之一造成:第一,與數據庫中現有的索引配置方案相比,ITW無法提出任何能夠進一步提高性能的索引建議;第二;取樣的表裡面沒有足夠的數據,無法確定一個合適的索引配置方案。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved