Come ottenere le statistiche di utilizzo del tuo SQL Server Database

Condividi ora:

Quando si lavora in un ambiente molto grande SQL Server ambiente, è molto comune che nessuno nell'organizzazione sappia chi utilizza un determinato database. Questo scenario è molto comune se sono presenti più sistemi legacy. Segui questo articolo per identificare l'efficacia del tuo SQL Server vengono utilizzati i database.

Metodo 1:

In questo metodo, leggeremo l'output di sp_who2 e lo cattureremo in una tabella. Il primo passo è creare la tabella usando questo 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()
    );

Pianifica ed esegui questo script come a SQL Server Lavoro. Possiamo rivedere la tabella di registro in qualsiasi momento per identificare se il nostro tarviene utilizzato il database get.

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;

Metodo 2:

A differenza del metodo precedente, se non sei interessato a troppi dettagli e vuoi solo sapere se il database è in uso o meno, allora questo script è la soluzione migliore. Se stai usando SQL Server con una versione precedente al 2014, questo non funzionerà. L'output di questo script mostra 3 campi. I primi campi forniscono informazioni sul nome del database. Questo è il campo chiave per noi in quanto questo ci aiuterà a identificare se il nostro tarottenere il database è in uso. Il secondo campo ci aiuterà a classificare le connessioni al database come connessioni utente vs SQL Server collegamenti interni. L'ultima colonna elenca il conteggio delle connessioni al database.

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;

Metodo 3:

Prima di inserire i dati nella tabella di registro, nel metodo 1, non è possibile eseguire un filtro sul nome del database. Tuttavia è possibile nel Metodo 2 e nel Metodo 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;

Metodo 4:

Profilo SQLQuesto metodo è molto efficace nell'identificare l'utilizzo del database, ma richiede molte risorse. Sì, stiamo parlando di profiler. Scegli un modello da Profiler o usa un modello personalizzato e tieni traccia delle connessioni al database.

Rimuovi il database

Rimuovi il databaseDai metodi sopra elencati, sarai in grado di identificare se il tuo database è ancora in uso o meno. Se si giunge alla conclusione che non viene più utilizzato, la migliore pratica è informare i rispettivi team che verrà rimosso dal server. In una bella giornata, fai un backup COMPLETO di questo database inutilizzato e rilascialo dal server. Bisogna fare attenzione a non farlo corrotto SQL Server db durante questo processo.

Introduzione dell'autore:

Neil Varley è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparare l'errore dei dati pst di Outlook ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.