效能監視及微調工具

適用於:SQL Server

Microsoft SQL Server 提供一套完整工具來監視 SQL Server 中的事件,以及微調實體資料庫設計。 要選擇的工具依據要做的監視或微調類型,以及要監視的特殊事件而定。

下列為 SQL Server 監視與微調的工具:

工具 Description
內建函數 (Transact-SQL) 內建函數會顯示自伺服器啟動後,關於 SQL Server 活動的快照集統計資料,這些統計資料會儲存於預先定義的 SQL Server 計數器中。 例如,@@CPU_BUSY 包含 CPU 已執行 SQL Server 程式碼的時間長度;@@CONNECTIONS 包含 SQL Server 連線或嘗試連線的數量;@@PACKET_ERRORS 則包含在 SQL Server 連線上發生的網路封包數。
DBCC (Transact-SQL) DBCC (資料庫主控台命令) 陳述式讓您可以檢查效能統計資料和資料庫的邏輯與實體一致性。
Database Engine Tuning Advisor (DTA) Database Engine Tuning Advisor 會針對您要微調的資料庫,分析執行 Transact-SQL 陳述式效能影響。 Database Engine Tuning Advisor 會針對新增、移除,或修改索引、索引檢視和分割提供建議。
資料庫測試助理 (DEA) 資料庫測試助理 (DEA) 是一個適用於 SQL Server 的新 A/B 測試解決方案。 其將協助針對指定的工作負載評估 SQL Server 資料庫引擎的目標版本。 從舊版 SQL Server (從 SQL Server 2005 (9.x) 開始) 升級為任何較新版的 SQL Server 時,DEA 將能提供比較分析計量。
錯誤記錄 Windows 應用程式事件記錄檔會針對發生於 Windows Server 與 Windows 作業系統上的事件,以及在 SQL Server、SQL Server Agent 與全文檢索搜尋中的事件,提供概括性的資訊。 該記錄檔包含有關 SQL Server 事件的相關資訊,而且無法從別處取得這些資訊。 您可以使用錯誤記錄檔中的資訊來針對 SQL Server 相關問題進行疑難排解。
擴充事件 「擴充事件」是一種使用極少量效能資源的一種輕量型效能監視系統。 擴充事件提供三個圖形化使用者介面 (新增工作階段精靈、新增工作階段及 XE Profiler),以建立、修改、顯示及分析您的工作階段資料。
執行相關的動態管理檢視和函數 (Transact-SQL) 執行相關的 DMV 可讓您可以檢查與執行相關的資訊。
即時查詢統計資料 (LQS) 顯示有關查詢執行步驟的即時統計資料。 因為這份資料是執行查詢時提供,所以這些執行統計資料在偵錯查詢效能問題方面非常有用。
監視資源使用狀況 (系統監視器) 「系統監視器」主要會追蹤資源使用量 (例如使用中的緩衝區管理員分頁要求的數目),讓您可以使用預先定義的物件和計數器監視伺服器效能和活動,或使用者定義的計數器來監視事件。 「系統監視器」(Microsoft Windows NT 4.0 中的「效能監視器」) 收集關於事件的計數和比率而非資料 (例如:記憶體使用量、使用中交易的數目、被封鎖的鎖定數目或是 CPU 活動)。 您可以設定特定計數器的臨界值來產生提醒操作員的警示。

「系統監視器」可在 Microsoft Windows Server 與 Windows 作業系統上運作。 其可以監視 (從遠端或本機) Windows NT 4.0 或更新版本上的 SQL Server 執行個體。

SQL Server Profiler 與系統監視器之間最主要的差異在於 SQL Server Profiler 監視資料庫引擎事件,而系統監視器則監視與伺服器處理序相關聯的資源使用情形。
開啟活動監視器 (SQL Server Management Studio) SQL Server Management Studio 中的活動監視器對於目前活動的特定檢視非常有用,並會以圖形方式顯示以下相關資訊:

- 在 SQL Server 執行個體上執行的處理序
- 已封鎖的處理序
- 鎖定
- 使用者活動
效能儀表板 SQL Server Management Studio 中的 [效能儀表板] 可協助您快速識別出目前 SQL Server 中是否有任何效能瓶頸。
Query Tuning Assistant (查詢調整小幫手,QTA) Query Tuning Assistant (查詢調整小幫手) (QTA) 功能將引導使用者完成建議的工作流程,以便在升級到更新版 SQL Server 期間保持效能穩定性,如查詢存放區使用案例的<在升級至更新版 SQL Server 期間保持效能的穩定性>一節所述。
查詢存放區 查詢存放區功能可為您提供關於查詢計畫選擇及效能的深入資訊。 其可協助您您快速找出由於查詢計劃變更所導致的效能差異,以簡化效能疑難排解作業。 查詢存放區會自動擷取查詢、計劃和執行階段統計資料的歷程記錄,並將其保留供您檢閱。 其會以時段來區分資料、供您查看資料庫使用模式,並了解何時在伺服器上發生查詢計劃變更。
SQL 追蹤 建立、篩選及定義追蹤的 Transact-SQL 預存程序:

sp_trace_create (Transact-SQL)
sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)
SQL Server Distributed Replay Microsoft SQL Server Distributed Replay 可以使用多部電腦重新執行追蹤資料,並模擬關鍵性任務的工作負載。
sp_trace_setfilter (Transact-SQL) SQL Server Profiler 會追蹤引擎處理序事件 (例如批次或交易的開始),讓您可以監視伺服器與資料庫活動 (例如死結、嚴重錯誤或登入活動)。 您可以將 SQL Server Profiler 資料擷取至 SQL Server 資料表或檔案中,以供稍後分析,也可以逐步重新執行於 SQL Server 擷取的事件,以查看實際的發生情形。
系統預存程序 (Transact-SQL) 下列 SQL Server 系統預存程序針對許多監視工作提供了強大的替代方式:

sp_who (Transact-SQL)
回報有關目前 SQL Server 使用者與處理序的快照集資訊,包括目前正在執行的陳述式,以及陳述式是否遭封鎖。

sp_lock (Transact-SQL)
報告與鎖定有關的快照集資訊,包括鎖定所套用的物件識別碼、索引識別碼、鎖定類型與鎖定套用的類型或資源。

sp_spaceused (Transact-SQL)
顯示目前資料表 (或是整個資料庫) 使用的磁碟空間估計量。

sp_monitor (Transact-SQL)
顯示統計資料,包括 CPU 使用率、I/O 使用情形與自從上次執行 sp_monitor 之後所經過的閒置時間。
追蹤旗標 (Transact-SQL) 追蹤旗標顯示伺服器內部特定活動的相關資訊,並可用來診斷問題或效能問題 (例如死結鏈結)。

選擇監視工具

監視工具的選擇依據要監視的事件與活動而定。

事件或活動 擴充事件 SQL Server Profiler Distributed Replay 系統監視器 活動監視器 Transact-SQL 錯誤記錄 效能儀表板
趨勢分析 .是
重新執行擷取的事件 是 (從單一電腦) 是 (從多部電腦)
特定的監視 1 .是 .是 .是
產生警示
圖形化介面 .是 .是 .是 .是
在自訂應用程式中使用 2

1 使用 SQL Server Management Studio XEvent Profiler
2 使用 SQL Server Profiler 系統預存程序。

Windows 監視工具

Windows 作業系統與 Windows Server 2003 也提供下列監控工具。

工具 描述
工作管理員 顯示執行於系統上的處理序與應用程式概要。
網路監視器代理程式 監視網路流量。

如需有關 Windows 作業系統或 Windows Server 工具的詳細資訊,請參閱 Windows 說明文件。