擴充事件
SQL Server 擴充事件具有可高度擴充及可高度設定的基礎結構,可以讓使用者視需要收集許多或部分的資訊來排除或識別效能問題。
您可以在 SQL Server 擴充事件網站上找到有關擴充事件的詳細資訊。
SQL Server 擴充事件的優點
「擴充事件」是一種使用極少量效能資源的一種輕量型效能監視系統。 擴充事件提供了兩個圖形化使用者介面 ([新增工作階段精靈] 和 [新增工作階段]),用以建立、修改、顯示及分析您的工作階段資料。
擴充事件概念
SQL Server 擴充事件是以現有的概念為根據 (例如事件或事件取用者)、使用 Windows 事件追蹤的概念,並導入新的概念。
下表描述擴充事件的概念。
主題 |
說明 |
---|---|
描述擴充事件封裝,其中包含執行擴充事件工作階段時,用來取得及處理資料的物件。 |
|
描述事件工作階段期間可以接收資料的事件取用者。 |
|
描述可實作和管理擴充事件工作階段的引擎。 |
|
描述擴充事件工作階段。 |
擴充事件架構
「擴充事件」是一種適用於伺服器系統的一般事件處理系統。 擴充的事件基礎結構可支援 SQL Server 中資料的相互關聯,而在某些條件下,則可支援作業系統和資料庫應用程式中資料的相互關聯。 在後者的情況下,「擴充事件」輸出必須導向 Windows 事件追蹤 (ETW),才能讓此事件資料與作業系統或應用程式事件資料相互關聯。
所有應用程式都有執行點,這些執行點在應用程式內部和外部都很實用。 在應用程式內,可以使用工作最初執行期間所收集的資訊將非同步處理加入佇列。 在應用程式外,執行點會將有關受監視之應用程式的行為和效能特性資訊提供給監視公用程式。
擴充的事件可支援在處理序外使用事件資料。 這些資料通常是由以下項目所使用:
追蹤工具,例如 SQL 追蹤和系統監視器。
記錄工具,例如 Windows 事件記錄檔或 SQL Server 錯誤記錄檔。
管理產品或是開發產品上之應用程式的使用者。
「擴充事件」具有下列重要的設計層面:
「擴充事件」引擎無法得知事件。 如此可讓此引擎將任何事件繫結至任何目標,因為此引擎不受到事件內容的限制。 如需有關擴充的事件引擎的詳細資訊,請參閱<SQL Server 擴充的事件引擎>。
事件會與事件取用者區隔,後者在擴充的事件中稱為「目標」。 這表示,任何目標都可以接收任何事件。 此外,目標可以自動耗用任何引發的事件,這樣可以記錄或提供其他事件內容。 如需詳細資訊,請參閱<SQL Server 擴充的事件目標>。
事件與事件發生時所要採取的動作不同。 因此,任何動作都可以與任何事件產生關聯。
述詞可以動態篩選何時應該擷取事件資料。 這樣會增加「擴充事件」基礎結構的彈性。 如需詳細資訊,請參閱<SQL Server 擴充的事件封裝>。
擴充的事件可以同步產生事件資料 (以及非同步處理該資料),這樣可為事件處理提供彈性的方案。 此外,擴充的事件還提供下列功能:
在伺服器系統上處理事件的統一方式,同時也可讓使用者隔離特定的事件來進行疑難排解。
與現有的 ETW 工具整合並支援這些工具。
可根據 Transact-SQL 完整設定的事件處理機制。
能夠動態監視使用中處理序,同時對這些處理序有最少的影響。
執行的預設系統健康工作階段,而不會有任何顯著的效能影響。 此工作階段會收集系統資料,讓您能夠用來協助疑難排解效能問題。 如需詳細資訊,請參閱<使用 system_health 工作階段>。
擴充事件工作
使用 Management Studio 或 Transact-SQL 執行 Transact-SQL 資料定義語言 (DDL) 陳述式、動態管理檢視和函數或目錄檢視時,您可以針對您的 SQL Server 環境建立簡單或複雜 SQL Server「擴充事件」疑難排解方案。
工作描述 |
主題 |
---|---|
使用 [物件總管] 管理事件工作階段。 |
|
描述如何建立擴充事件工作階段。 |
|
描述如何檢視及重新整理目標資料。 |
|
描述如何使用擴充事件工具來建立和管理 SQL Server「擴充事件」工作階段。 |
|
描述如何改變擴充事件工作階段。 |
|
描述如何複製或匯出目標資料。 |
|
描述如何修改您的追蹤結果檢視,以自訂您想要分析資料的方式。 |
|
描述如何取得與事件有關之欄位的資訊。 |
|
描述如何在註冊的封裝中查明哪些事件可用。 |
|
描述如何判斷哪些擴充事件目標可在註冊的封裝中使用。 |
|
描述如何檢視同等於每一個 SQL 追蹤事件及其關聯資料行的「擴充事件」事件和動作。 |
|
描述當您在 CREATE EVENT SESSION 或 ALTER EVENT SESSION 中使用 ADD TARGET 引數時,如何尋找可以設定的參數。 |
|
描述如何將現有的 SQL 追蹤指令碼轉換為擴充事件工作階段。 |
|
描述如何判斷哪些查詢持有鎖定、查詢的計畫,以及取得鎖定時的 Transact-SQL 堆疊。 |
|
描述如何識別阻礙資料庫效能的鎖定來源。 |
|
描述如何搭配 Windows 事件追蹤來使用擴充事件,以監視系統活動。 |