效能監視及微調工具
適用於: 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 說明文件。