Desejo registrar a duração e o tempo dos procedimentos armazenados definidos pelo usuário sempre que forem invocados. Acredito que usar eventos estendidos seria o caminho a percorrer para conseguir isso.
Você pode me ajudar a definir a sessão e consultar os resultados? Não tenho certeza sobre qual evento adicionar (sqlserver.rpc_completed?) e qual destino escolher (synchronous_event_counter,asynchronous_file_target ou ring_buffer?).
Também preciso de ajuda para consultar os resultados (por exemplo: agrupar o conjunto de resultados para que cada sp mostre a duração e o tempo de execução superiores.) Usamos o SQL Server 2008 R2.
relate perguntas
-
A instalação autônoma do cluster do SQL Server 2008 R2 falha com o erro - "Caracteres ilegais no caminho".
-
Migração de banco de dados grande
-
plano de manutenção executado pelo agente
-
Randomizando o conteúdo da tabela e armazenando-o de volta na tabela
-
Como encontrar as instruções SQL mais recentes no banco de dados?
Suas opções são um pouco limitadas no SQL Server 2008 R2 e Extended Events. Você pode tentar,
rpc_completed
mas lembre-se de que ele só será registrado para chamadas de procedimento remoto . Aqui está um exemplo de código testado no SQL 2008 R2 que mostra como criar uma sessão e depois lê-la. Trabalhe com isso, certifique-se de entendê-lo e experimente:synchronous_event_counter
provavelmente não irá ajudá-lo, pois você apenas obtém um evento e uma contagem. É bom, digamos, contar logins ou deadlocks em um dia, algo assim.ring_buffer
provavelmente não irá ajudá-lo porque é uma área circular com espaço limitado. Basicamente, poderia ficar sem espaço e voltar a funcionar.HTH