Share via


瞭解事件通知與 SQL 追蹤

下表比較使用事件通知和 SQL 追蹤來監督伺服器事件的異同。

SQL Trace

事件通知

SQL 追蹤不會產生與交易關聯的效能負擔。資料的封裝很有效率。

建立 XML 格式事件資料與傳送事件通知有相關聯的效能負擔。

SQL 追蹤可以監督任何追蹤事件類別。

事件通知可以監督追蹤事件類別的子集,以及所有資料定義語言 (DDL) 事件。

您可以自訂在追蹤事件中要產生哪些資料行。

會修復事件通知所傳回的 XML 格式事件資料之結構描述。

不論 DDL 陳述式是否已回復,永遠都會產生 DDL 所產生的追蹤事件。

如果在對應 DDL 陳述式中的事件已回復,就不會引發事件通知。

管理追蹤事件資料的中繼流程,將需要擴展和管理追蹤檔案或追蹤資料表。

事件通知資料的中繼管理是透過 Service Broker 佇列自動完成。

每次重新啟動伺服器時都必須重新啟動追蹤。

在註冊後,事件通知會持續存在於伺服器週期中並已交易。

在初始化後,就無法控制追蹤的引發。停止時間和篩選時間可用來指定初始化它們的時間。是透過輪詢對應追蹤檔案來存取追蹤。

可以針對收到事件通知所產生的訊息之佇列,使用 WAITFOR 陳述式來控制事件通知。可以透過輪詢佇列來存取它們。

ALTER TRACE 是建立追蹤所需的基本權限。在對應電腦上建立追蹤檔案的權限也是必要的。

基本權限是視建立事件通知的類型而定。如需詳細資訊,請參閱<CREATE EVENT NOTIFICATION (Transact-SQL)>。在對應佇列上也需要 RECEIVE 權限。

可以遠端接收追蹤。

可以遠端接收事件通知。

追蹤事件是使用系統預存程序來實作。

事件通知是使用 Database Engine、Service Broker 和 Transact-SQL 陳述式的組合來實作。

透過查詢對應追蹤資料表、剖析追蹤檔案或使用 SQL Server 管理物件 (SMO) 的 TraceReader Class,就可使用程式設計的方式來存取追蹤事件的資料。

透過針對 XML 格式的事件資料發出 XQuery,或使用 SMO Event 類別,以程式設計方式來存取事件資料。

請參閱

概念

其他資源