Microsoft SQL Server 提供了一套綜合的工具,用於監視 SQL Server 中的事件和優化物理數據庫的設計。 工具的選擇取決於要執行的監視或優化類型和要監視的具體事件。ios
如下是 SQL Server 監視和優化工具:sql
工具 | 描述 |
---|---|
內置函數 (Transact-SQL) | 內置函數可顯示自啓動服務器以來有關 SQL Server 活動的快照統計信息,這些統計信息存儲在預約義的 SQL Server 計數器中。 例如,@@CPU_BUSY** 包含 CPU 執行 SQL Server 代碼所持續的時間;@@CONNECTIONS** 包含 SQL Server 鏈接或嘗試鏈接的次數;**@@PACKET_ERRORS** 包含 SQL Server 鏈接上出現的網絡數據包數。 |
DBCC (Transact-SQL) | DBCC(數據庫控制檯命令)語句使您可以檢查性能統計信息以及數據庫的邏輯與物理一致性。 |
數據庫引擎優化顧問 (DTA) | 數據庫引擎優化顧問可分析所執行的 Transact-SQL 語句對要優化的數據庫性能的影響。 數據庫引擎優化顧問提供了添加、刪除或修改索引、索引視圖及分區的建議。 |
數據庫實驗助手 (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代理和全文搜索中的事件。 它包含有關 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 中是否存在任何當前性能瓶頸。 |
查詢優化助手 (QTA) | 查詢優化助手 (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 分佈式重播 | Microsoft SQL Server 分佈式重播可使用多臺計算機重播跟蹤數據,並模擬任務關鍵型工做負荷。 |
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): 報告有關鎖的快照信息,包括對象 ID、索引 ID、鎖的類型以及鎖應用於的類型或資源。 sp_spaceused (Transact-SQL): 顯示對錶(或整個數據庫)所用的當前磁盤空間量的估計。 sp_monitor (Transact-SQL): 顯示統計信息,包括 CPU 使用率、I/O 使用率以及自上次執行 sp_monitor 以來的空閒時間。 |
跟蹤標誌 (Transact-SQL) | 跟蹤標誌可顯示有關服務器內的特定活動的信息,用於診斷問題或性能問題(例如死鎖鏈)。 |
監視工具的選擇取決於要監視的事件或活動。數據庫
事件或活動 | 擴展事件 | SQL Server 事件探查器 | 分佈式重播 | 系統監視器 | 活動監視器 | Transact-SQL | 錯誤日誌 | 性能儀表板 |
---|---|---|---|---|---|---|---|---|
走向分析 | 是 | 是 | 是 | |||||
重播捕獲的事件 | 是(從單臺計算機) | 是(從多臺計算機) | ||||||
臨時監視 | 是1 | 是 | 是 | 是 | 是 | 是 | ||
生成警報 | 是 | |||||||
圖形界面 | 是 | 是 | 是 | 是 | 是 | 是 | ||
在自定義應用程序內使用 | 是 | 是2 | 是 |