Como obter as estatísticas de uso do seu SQL Server Bases de dados

Compartilhe agora:

Ao trabalhar em uma área muito grande SQL Server ambiente, é muito comum que ninguém na organização saiba quem utiliza determinada base de dados. Esse cenário é muito comum se houver vários sistemas legados. Siga este artigo para identificar com que eficiência seu SQL Server bancos de dados são usados.

Método 1:

Neste método, vamos ler a saída de sp_who2 e capturá-la em uma tabela. O primeiro passo é criar a tabela usando este script.

CREATE TABLE T1 (
    session_id INT
    ,status_message VARCHAR(1000) NULL
    ,login_name SYSNAME NULL
    ,Name_of_Host SYSNAME NULL
    ,Blocked_By SYSNAME NULL
    ,Database_Name SYSNAME NULL
    ,Script_description VARCHAR(1000) NULL
    ,CPU_Time INT NULL
    ,Disk_Input_Output INT NULL
    ,Last_Batch VARCHAR(1000) NULL
    ,Name_of_Program VARCHAR(1000) NULL
    ,Session_ID_2 INT
    ,ID_of_Request INT NULL
    ,Log_Date DATETIME DEFAULT GETDATE()
    );

Agende e execute este script como um SQL Server Trabalho. Podemos consultar a tabela de logs a qualquer momento para identificar se o nosso banco de dados alvo está sendo utilizado.

INSERT INTO T1 (
    session_id
    ,status_message
    ,login_name
    ,Name_of_Host
    ,Blocked_By
    ,Database_Name
    ,Script_description
    ,CPU_Time
    ,Disk_Input_Output
    ,Last_Batch
    ,Name_of_Program
    ,Session_ID_2
    ,ID_of_Request
    )
EXECUTE sp_who2 active;

Método 2:

Ao contrário do método acima, se você não estiver interessado em muitos detalhes e apenas quiser saber se o banco de dados está em uso ou não, esse script é o mais adequado. Se você estiver usando SQL Server Se a versão do script for anterior a 2014, este método não funcionará. O resultado do script exibe três campos. O primeiro campo fornece informações sobre o nome do banco de dados. Este é o campo principal, pois nos ajudará a identificar se o banco de dados de destino está em uso. O segundo campo nos ajudará a classificar as conexões com o banco de dados como conexões de usuário ou conexões de terceiros. SQL Server conexões internas. A última coluna lista a contagem de conexões com o banco de dados.

SELECT DB_NAME(sys.dm_exec_sessions.database_id) AS [Database Name]
    ,CASE 
        WHEN sys.dm_exec_sessions.is_user_process = 1
            THEN 'YES'
        WHEN sys.dm_exec_sessions.is_user_process = 0
            THEN 'NO'
        END AS [Is it User connection?]
    ,COUNT(sys.dm_exec_sessions.session_id) AS [Connections Count]
FROM sys.dm_exec_sessions
GROUP BY DB_NAME(sys.dm_exec_sessions.database_id)
    ,sys.dm_exec_sessions.is_user_process
ORDER BY 1
    ,2;

Método 3:

Antes de enviar os dados para a tabela de log, no método 1, não podemos fazer um filtro no nome do banco de dados. No entanto, é possível no Método 2 e no Método 3.

SELECT t1.objtype AS [Object]
    ,t1.refcounts AS [ReferredCount]
    ,t1.usecounts AS [Usage]
    ,t1.size_in_bytes / 1024 AS [KB Size]
    ,db_name(t3.dbid) AS [DatabaseName]
FROM sys.dm_exec_cached_plans t1
OUTER APPLY sys.dm_exec_text_query_plan(plan_handle, 0, - 1) t2
OUTER APPLY sys.dm_exec_sql_text(plan_handle) AS t3
WHERE db_name(t3.dbid) = 'ERP10_SandBox'
ORDER BY t1.usecounts DESC;

Método 4:

Perfilador SQLEsse método é muito poderoso para identificar o uso do banco de dados, mas consome muitos recursos. Sim, estamos falando do profiler. Escolha um modelo do Profiler ou use um modelo personalizado e rastreie as conexões do banco de dados.

Remover o banco de dados

Remover o banco de dadosA partir dos métodos listados acima, você poderá identificar se seu banco de dados ainda está sendo usado ou não. Se você chegar à conclusão de que não é mais usado, a melhor prática é informar às respectivas equipes que ele será removido do servidor. Em um bom dia, faça um backup COMPLETO desse banco de dados não utilizado e remova-o do servidor. Deve-se tomar cuidado para não corrupto SQL Server db durante este processo.

Introdução do autor:

Neil Varley é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar erro de dados pst do Outlook e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.