Eu quero monitorar apenas sp's.
O SQL Server Profiler escuta todos os eventos e filtra os dados desejados (por exemplo, sp's)?
Ou melhor, o sql emite apenas eventos pré-configurados do Profiler?
Eu quero monitorar apenas sp's.
O SQL Server Profiler escuta todos os eventos e filtra os dados desejados (por exemplo, sp's)?
Ou melhor, o sql emite apenas eventos pré-configurados do Profiler?
O SQL Trace (no qual o Profiler é construído) irá capturar todas as instâncias de quaisquer eventos que você decidir coletar. Portanto, se você coletar eventos RPC:Completed, obterá um evento para cada RPC concluído, o rastreamento capturará esse evento. Se você não selecionar esse evento, o rastreamento não o capturará. Então, ele só vai capturar o que é dito.
Você pode (e deve) filtrar ainda mais os dados retornados adicionando filtros em várias colunas (digamos, um nome de banco de dados ou uma duração para um evento concluído para capturar apenas eventos com uma duração maior que um determinado valor, por exemplo). Nesse caso, todas as instâncias desse evento ainda são capturadas, mas o filtro é aplicado antes que as informações sejam despejadas no mecanismo que você está usando para rastrear.
Veja a diferença? Se você não selecionar o evento, esse evento não é capturado ou enviado (Emitido como você está dizendo, se entendi corretamente), mas se você selecionar o evento - todas as instâncias são capturadas, mas apenas aquelas que passam no filtro critérios são enviados (emitidos).
Eu também argumentaria contra o uso do profiler, mas considere fazer um rastreamento do lado do servidor em um arquivo. Veja esta postagem no blog de Jonathan Kehayias para mostrar a diferença no impacto de desempenho entre os métodos.