標籤:擴充事件 xevent extented events
SQL Server擴充事件(Extended Events)-- 事件的壽命
定義並啟動擴充事件會話後,處理過程將照常進行,直到所監控的代碼遇到某個事件為止。介紹了擴充事件系統所遵循的步驟。
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="image" src="http://s3.51cto.com/wyfs02/M01/58/25/wKioL1SqWbSiLh7PAADNJebS3Ls579.jpg" border="0" height="314" />
具體步驟如下:
1. 執行檢查以查看是否有任何擴充事件會話正在監控該事件。如果沒有,控制權將返給包含該事件的代碼,然後繼續進行處理。
2. 確定事件的負載,將所需的全部資訊都收集到記憶體中 — 換言之,構建事件的負載。
3. 如果為該事件定義了任何謂詞,則執行它們。此時,謂詞結果可能是不應消耗該事件。如果是這種情況,控制權將返給包含該事件的代碼,然後繼續進行處理。
4. 此時系統已得知事件將被消耗,因此將執行連結到該事件的所有動作。現在事件已具有完整的負載,已為消耗做好準備。
5. 將事件提供給同步目標(如果有的話)。
6. 如果存在任何非同步目標,將會緩衝該事件以便隨後進行處理。
7. 控制權將返給包含該事件的代碼,然後繼續進行處理。
如前所述,在建立事件會話時應格外注意,要避免同步動作或非同步目標的緩衝對所監控代碼的效能產生影響。
本文出自 “SQL Server Deep Dives” 部落格,請務必保留此出處http://ultrasql.blog.51cto.com/9591438/1599383
SQL Server擴充事件(Extended Events)-- 事件的壽命