Para rastreamentos antigos, posso procurar em sys.traces ou no log do SQL Server para descobrir quando um rastreamento foi iniciado. Existe algo semelhante para Eventos Estendidos? Me deparei com esta entrada de blog sobre o uso de um gatilho DDL, mas estou me perguntando se há algo melhor.
SQLServer 2012-2014
Existe, mas não fornece necessariamente um "status" em si. Se você olhar para a definição de
sys.dm_xe_sessions
no Books Online aqui :A chave é
active extended events sessions
, este DMV só retornará as sessões XE que estão em execução. Então você basicamente olha para ocreate_time
e é aí que a sessão foi iniciada. Você pode verificar isso observando asystem_health
sessão, pois a hora retornada deve corresponder à última vez em que a instância foi iniciada.Um exemplo é que minha instância do SQL Server 2012 em minha máquina local é mantida parada na maior parte do tempo até que eu precise. Acabei de começar para que você possa ver que os tempos estão bem próximos:
Aqui está um código rápido para verificar se a Sessão de Evento Estendida especificada existe e se está habilitada ou desabilitada:
HTH.