瞭解事件通知與 SQL 追蹤
下表比較使用事件通知和 SQL 追蹤來監督伺服器事件的異同。
SQL Trace | 事件通知 |
---|---|
SQL 追蹤不會產生與交易關聯的效能負擔。資料的封裝很有效率。 |
建立 XML 格式事件資料與傳送事件通知有相關聯的效能負擔。 |
SQL 追蹤可以監督任何追蹤事件類別。 |
事件通知可以監督追蹤事件類別的子集,以及所有資料定義語言 (DDL) 事件。 |
您可以自訂在追蹤事件中要產生哪些資料行。 |
會修復事件通知所傳回的 XML 格式事件資料之結構描述。 |
不論 DDL 陳述式是否已回復,永遠都會產生 DDL 所產生的追蹤事件。 |
如果在對應 DDL 陳述式中的事件已回復,就不會引發事件通知。 |
管理追蹤事件資料的中繼流程,將需要擴展和管理追蹤檔案或追蹤資料表。 |
事件通知資料的中繼管理是透過 Service Broker 佇列自動完成。 |
每次重新啟動伺服器時都必須重新啟動追蹤。 |
在註冊後,事件通知會持續存在於伺服器週期中並已交易。 |
在初始化後,就無法控制追蹤的引發。停止時間和篩選時間可用來指定初始化它們的時間。是透過輪詢對應追蹤檔案來存取追蹤。 |
可以針對收到事件通知所產生的訊息之佇列,使用 WAITFOR 陳述式來控制事件通知。可以透過輪詢佇列來存取它們。 |
ALTER TRACE 是建立追蹤所需的基本權限。在對應電腦上建立追蹤檔案的權限也是必要的。 |
基本權限是視建立事件通知的類型而定。如需詳細資訊,請參閱<CREATE EVENT NOTIFICATION (Transact-SQL)>。在對應佇列上也需要 RECEIVE 權限。 |
可以遠端接收追蹤。 |
可以遠端接收事件通知。 |
追蹤事件是使用系統預存程序來實作。 |
事件通知是使用 SQL Server Database Engine、Service Broker 和 Transact-SQL 陳述式的組合來實作。 |
透過查詢對應追蹤資料表、剖析追蹤檔案或使用 SQL Server 管理物件 (SMO) 的 TraceReader Class,就可使用程式設計的方式來存取追蹤事件的資料。 |
透過針對 XML 格式的事件資料發出 XQuery,或使用 SMO Event 類別,以程式設計方式來存取事件資料。 |