2015-11-16 70 views
0

我還是新來擴展事件,但認爲我需要進入它,看到它更詳細。我正在嘗試在rpc_completed事件上設置一個擴展事件,用於跟蹤持續時間爲5秒或更長的proc調用。我使用新會話設置事件(已經在下面編寫了腳本)並測試它我打開了一個SSMS連接,在那裏創建了一個內置等待延遲10秒的測試過程。所以我預計這會出現在觀看實時數據中,但是當我執行測試過程時 - 它不會出現在觀看實時數據視圖中,我甚至已經刪除了過濾的持續時間,並且在「觀看實時數據視圖中仍然沒有結果「任何想法可能是錯誤的 我在SQL 2014本地機器實例上,這裏是腳本化的擴展事件。擴展事件 - rpc_completed

CREATE EVENT SESSION [PRC_Completed_Test] 
ON SERVER ADD EVENT sqlserver.rpc_completed (SET collect_statement = (1) 
ACTION(
sqlserver.client_app_name 
, sqlserver.client_hostname 
, sqlserver.database_name 
, sqlserver.sql_text) 
) 
WITH (
     MAX_MEMORY = 4096 KB 
     ,EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS 
     ,MAX_DISPATCH_LATENCY = 30 SECONDS 
     ,MAX_EVENT_SIZE = 0 KB 
     ,MEMORY_PARTITION_MODE = NONE 
     ,TRACK_CAUSALITY = OFF 
     ,STARTUP_STATE = OFF 
) 
GO 

任何指針將是巨大的

謝謝。

回答

1

如果要在從SSMS運行查詢時捕獲事件,則需要捕獲sql_batch_completed。從應用程序捕獲事件時使用rpc_completed。

下面是我用一個例子:

CREATE EVENT SESSION [Monitor Queries running longer than 5 seconds] ON SERVER 
ADD EVENT sqlserver.rpc_completed(SET collect_statement=(1) 
    ACTION(sqlserver.database_id,sqlserver.plan_handle) 
    WHERE ([duration]>(5000000))), 
ADD EVENT sqlserver.sql_batch_completed(
    ACTION(sqlserver.database_id,sqlserver.plan_handle) 
    WHERE ([duration]>(5000000))) 
ADD TARGET package0.event_file(SET filename=N'C:\ExtendedEvents\Queries running longer than 5 seconds 2015-12-08.xel') 
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF) 
GO 

問候, 丁科Fabricni