O banco de dados é o Microsoft SQL Server. Eu tenho um identificador de consulta ( sql_handle
) desys.dm_exec_query_stats
Existe uma maneira de obter o objeto do qual a consulta faz parte? por exemplo eu quero ter dbname.viewname
oudbname.storedprocedurename
Eu sei que posso usar sys.dm_exec_sql_text(sql_handle)
e usar o text
campo para obter a consulta completa, mas esperava algo que me desse o caminho sem ter que analisar essa string
claro
Você apenas tem que procurar em outro lugar.
sys.dm_exec_procedure_stats
hasobject_id
edatabase_id
colunas que você pode usar para obter o esquema e o nome do objeto para instruções não dinâmicas executadas em procedimentos armazenados.Você pode juntar-se
sys.dm_exec_query_stats
a ela nasql_handle
coluna para descobrir quais instruções pertencem a procedimentos armazenados.Como alternativa, você pode usar sp_BlitzCache e alimentá-lo
sql_handle
para fazer isso automaticamente.No interesse da transparência, sou mantenedor desse projeto de código aberto.
Você pode
APPLY sys.dm_exec_sql_text
Conforme observado nos documentos :