監視和微調效能
監視資料庫的目標在取得伺服器的執行方式。有效的監視包括定期建立目前效能的快照以確定造成問題的處理序,以及持續蒐集資料來追蹤效能趨勢。Microsoft SQL Server 和 Microsoft Windows 作業系統提供公用程式,可讓您檢視資料庫的目前狀況並隨著狀況變更來追蹤效能。
監視 SQL Server 的用途如下:
- 判斷是否可以改善效能。例如,監視常用查詢的回應時間,您可以判斷是否需要變更資料表的查詢或索引。
- 評估使用者活動。例如,藉由監視嘗試連接 SQL Server 執行個體的使用者,您可以判斷安全性是否設定適當,並測試應用程式和開發系統。例如,藉由監視執行中的 SQL 查詢,您可以判斷查詢是否撰寫正確並產生預期的結果。
- 對問題進行疑難排解或對應用程式元件進行偵錯,例如預存程序。
因為 SQL Server 是在動態環境下提供服務,所以監視很重要。應用程式中的資料會變更。使用者需要的存取類型會變更。使用者的連接方式會變更。甚至存取 SQL Server 的應用程式類型也可能變更,但 SQL Server 會自動管理系統層級的資源,例如記憶體和磁碟空間,因此系統層級的大量手動微調可以降到最低。但監視可讓管理員識別效能趨勢,以決定是否需要變更。
若要有效監視 SQL Server 的任何元件,請遵循下列步驟:
- 決定您的監視目標。
- 選取適當的工具。
- 識別要監視的元件。
- 選取這些元件的標準。
- 監視伺服器。
- 分析資料。
以下依次討論這些步驟。
決定您的監視目標
若要有效監視 SQL Server,您應該具體描述您的監視理由。可以包括下列理由:
- 建立效能基準線。
- 識別效能變更趨勢。
- 診斷特定效能問題。
- 識別要最佳化的元件或處理序。
- 比較不同用戶端應用程式在效能上的影響。
- 稽核使用者活動。
- 以不同的負載來測試伺服器。
- 測試資料庫架構。
- 測試維護排程。
- 測試備份與還原計劃。
- 決定修改硬體組態的時間。
選取適當的工具
決定監視的原因之後,您應該選取適當的工具。Windows 作業系統和 SQL Server 會提供完整的工具集合,可在交易密集的環境中監視伺服器。這些工具可清楚地呈現 SQL Server Database Engine 執行個體或 SQL Server Analysis Services 執行個體的狀況。
Windows 會提供下列工具來監視伺服器上執行的應用程式:
- 「系統監視器」可讓您收集和檢視記憶體、磁碟及處理器用量等活動的即時資料。
- 效能記錄與警示。
- 工作管理員。
- Windows 事件追蹤 (ETW),可讓您追蹤並記錄由使用者模式應用程式和核心模式驅動程式所引發的事件。ETW 是在 Windows 作業系統中實作。透過這項工具,您就可以匯出大部分 SQL Server 事件。
如需有關 Windows Server 或 Windows 工具的詳細資訊,請參閱 Windows 說明文件。
SQL Server 可提供下列工具來監視 SQL Server 的元件:
- SQL 追蹤
- SQL Server Profiler
- SQL Server Management Studio 活動監視器
- SQL Server Management Studio 圖形化顯示計劃
- 預存程序
- Database Console Commands (DBCC)
- 內建函數
- 追蹤旗標
如需 SQL Server 監視工具的詳細資訊,請參閱<效能監視與微調的工具>。
識別要監視的元件
監視 SQL Server 執行個體的第三個步驟是識別您監視的元件。例如,如果使用 SQL Server Profiler 來追蹤伺服器,您可以定義追蹤來收集特定事件的資料。您也可以排除不符合情況的事件。
選取受監視元件的標準
識別要監視的元件之後,請決定您監視的元件標準。例如,選取要納入追蹤的事件之後,您可以選擇只包含事件的特定資料。將追蹤限制在與追蹤相關的資料上,可以將執行追蹤所需的系統資源減到最小。
監視伺服器
若要監視伺服器,請執行您已設定來蒐集資料的監視工具。例如,定義追蹤之後,您可以執行追蹤來蒐集伺服器中所引發的事件之相關資料。
分析資料
完成追蹤之後,請分析資料,以查看是否已達到您的監視目標。如果尚未達成,請修改您用來監視伺服器的元件或標準。
以下概略說明擷取與使用事件資料的程序。
- 套用篩選來限制要收集的事件資料。
限制事件資料可讓系統把焦點放在監視案例相關的事件上。例如,若您要監視慢速查詢,可以使用篩選來限制只監視應用程式對特定資料庫執行超過三十秒以上的查詢。如需詳細資訊,請參閱<如何:設定追蹤篩選 (Transact-SQL)>與<如何:篩選追蹤中的事件 (SQL Server Profiler)>。 - 監視 (擷取) 事件。
一旦啟用後,使用中的監視會從指定的應用程式、SQL Server 執行個體或作業系統中擷取資料。例如,使用「系統監視器」監視磁碟活動時,監視會擷取磁碟讀寫動作等事件資料,並顯示在螢幕上。如需詳細資訊,請參閱<監視資源使用量 (系統監視器)>。 - 儲存擷取的事件資料。
儲存擷取的事件資料可讓您稍後分析,或甚至使用 SQL Server Profiler 來重新執行。您可將擷取的事件資料儲存到檔案,而檔案可以重新載入到原先建立該檔案的工具中,以進行分析。SQL Server Profiler 允許將事件資料儲存到 SQL Server 資料表。在建立效能基準線時,儲存擷取的事件資料就很重要。效能基準線的資料是儲存並使用於比較最近擷取的事件資料,以便判斷效能是否為最佳化。如需詳細資訊,請參閱<使用 SQL Server Profiler>。 - 建立包含指定設定的追蹤範本來擷取事件。
追蹤範本中包含事件本身、事件資料和用來擷取資料的篩選等相關規格。這些範本稍後可以用來監視特定的事件組合,而不需重新定義事件、事件資料與篩選。例如,如果您要時常監視死結的數目與陷入死結的使用者數目,您可以建立一個定義這些事件、事件資料與事件篩選的範本,儲存範本,然後在下次要監視死結時重新套用此篩選。SQL Server Profiler 使用追蹤範本的目的在此。如需詳細資訊,請參閱<如何:設定追蹤定義預設值 (SQL Server Profiler)>與<如何:建立追蹤範本 (SQL Server Profiler)>。 - 分析擷取的事件資料。
為了進行分析,擷取、儲存的事件資料會載入擷取資料的應用程式中。例如,從 SQL Server Profiler 擷取的追縱可以重新載入 SQL Server Profiler 中,以供檢視與分析。如需詳細資訊,請參閱<使用 SQL Server Profiler 檢視和分析追蹤>。
分析事件資料涉及判斷發生何事與發生的原因。這項資訊可讓您利用 Transact-SQL 陳述式或預存程序等 (視執行的分析類型而定),來執行變更以改善效能,例如增加更多記憶體、變更索引、修正程式碼問題。例如,您可以使用 Database Engine Tuning Advisor,來分析從 SQL Server Profiler 擷取的追蹤,並根據結果提供索引建議。如需詳細資訊,請參閱<微調實體資料庫設計>。 - 重新執行擷取的事件資料。
事件重新執行可讓您仿造原先擷取資料的資料庫環境來建立測試副本,並模擬原本發生在實際系統的狀況來重複執行擷取的事件。SQL Server Profiler 中無法使用此功能。您可以使用原本的發生速度、盡量加快 (用以驅策系統) 或甚至一次一個步驟來重新執行事件,以便在發生每個事件之後分析系統。藉由在測試環境下分析確實的事件,可以避免損毀生產系統。如需詳細資訊,請參閱<重新執行追蹤>。
本章節內容
主題 | 描述 |
---|---|
包含 SQL Server 和 Windows 工具的詳細資訊,這些工具可用來監視和微調 SQL Server 以改善效能。 |
|
包含如何在 SQL Server 中決定效能基準線的相關資訊。 |
|
包含使用「Windows 系統監視器」來追蹤 SQL Server 中資源使用量的相關資訊。 |
|
包含使用 SQL Server Profiler 和「SQL 追蹤」來監視 SQL Server 事件的相關資訊。 |
|
包含使用 Database Engine Tuning Advisor 來微調實體資料庫設計的相關資訊,包括索引、索引檢視及資料分割。 |
請參閱
概念
其他資源
SQL Server Profiler 參考
Database Engine Tuning Advisor 參考