sp_trace_setevent: Как достать plan_handle вместо полного XML Plan?
От: VladCore  
Дата: 14.03.25 06:59
Оценка:
Cмотрю я типы событий:
Event id="122": Showplan XML
Event id="168": Showplan XML For Query Compile

А как достать просто id плана?
который в sys.dm_exec_query_plan передаётся
Re: sp_trace_setevent: Как достать plan_handle вместо полного XML Plan?
От: BlackEric http://black-eric.lj.ru
Дата: 15.03.25 19:17
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Cмотрю я типы событий:

VC>Event id="122": Showplan XML
VC>Event id="168": Showplan XML For Query Compile

VC>А как достать просто id плана?

VC>который в sys.dm_exec_query_plan передаётся


Насколько я понимаю, это можно сделать только через Extended Events.
Как-то так, набросал примерно, проверить сейчас не на чем.
CREATE EVENT SESSION [CapturePlanHandle]
ON SERVER
ADD EVENT sqlserver.query_post_compilation_showplan(
    ACTION (sqlserver.plan_handle)
    -- при необходимости фильтрация и другие настройки
)
ADD TARGET package0.ring_buffer
WITH (STARTUP_STATE = OFF);

GO

ALTER EVENT SESSION [CapturePlanHandle]
    ON SERVER
    STATE = START;
GO
https://github.com/BlackEric001
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.