Dicas SQL Server

Identificar as procedures que não são utilizadas no SQL Server.

Identificar as procedures que não são utilizadas no SQL Server
Saiba como identificar as procedures que não são utilizadas no SQL Server.

Recentemente encontrei um ambiente que tinha mais de 7.000 stored procedures e eu precisava identificar quais procedures não estavam sendo utilizadas em uma base de dados.

Sabemos que existem mais de uma forma que possamos capturar isso então vou mostrar a vocês aqui algumas dessas formas.

Você pode usar um Server Side Trace, diferente da interface que inclui mais recursos durante o seu teste de captura. Você pode carregar isso em uma tabela ou excel para uma análise mais aprofundada.

Segunda abordagem, é usar o DMV sys.dm_exec_procedure_stats (com limitação de que se o servidor sql for reiniciado, os dados serão apagados).

Você também pode agendar um job que você capture esses dados em DMV e envie para uma tabela para guardar esses dados no SQL Server. Abaixo vou colocar o script para capturar esses dados.

-- Lista das possíveis procedures que não estão sendo utilizadas (Apenas SQL 2008)
    SELECT p.name AS 'SP Name'        -- Lista todas as procedures na base corrente.
    FROM sys.procedures AS p
    WHERE p.is_ms_shipped = 0

    EXCEPT

    SELECT p.name AS 'SP Name'        -- Lista todas as procedures na base corrente. 
    FROM sys.procedures AS p          -- que estão armazenadas no cache.
    INNER JOIN sys.dm_exec_procedure_stats AS qs
    ON p.object_id = qs.object_id
    WHERE p.is_ms_shipped = 0;
Identificar as procedures que não são utilizadas no SQL Server.