分享方式:


效能監視及微調工具

適用於: SQL Server

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

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

工具 描述
內建函數 內建函數會顯示自伺服器啟動後,關於 SQL Server 活動的快照集統計資料,這些統計資料會儲存於預先定義的 SQL Server 計數器中。 例如,@@CPU_BUSY 包含 CPU 已執行 SQL Server 程式碼的時間長度;@@CONNECTIONS 包含 SQL Server 連線或嘗試連線的數量;@@PACKET_ERRORS 則包含在 SQL Server 連線上發生的網路封包數。
DBCC 陳述式 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 也提供下列監控工具。

工具 描述
工作管理員 顯示執行於系統上的處理序與應用程式概要。
效能監視器 監視系統資源。
Windwos 應用程式事件記錄檔 檢視 SQL Server 和其他應用程式產生的應用程式事件。
Windows 防火牆 Windows 防火牆具有封鎖和允許流量的監視功能。

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