Comment obtenir les statistiques d'utilisation de votre SQL Server Bases de données

Partage maintenant:

Lorsque vous travaillez dans un très grand SQL Server environnement, il est très courant que personne dans l'organisation ne sache qui utilise une base de données particulière. Ce scénario est très courant s'il existe plusieurs systèmes hérités. Suivez cet article pour déterminer l'efficacité de votre SQL Server bases de données sont utilisées.

Méthode 1:

Dans cette méthode, nous allons lire la sortie de sp_who2 et la capturer dans une table. La première étape consiste à créer la table à l'aide de ce 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()
    );

Planifiez et exécutez ce script en tant que SQL Server Tâche. Nous pouvons consulter le tableau de journalisation à tout moment pour identifier si notre base de données cible est utilisée.

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éthode 2:

Contrairement à la méthode ci-dessus, si vous n'êtes pas intéressé par trop de détails et que vous vouliez simplement savoir si la base de données est utilisée ou non, alors ce script est le mieux adapté. Si vous utilisez SQL Server Si votre version est antérieure à 2014, cette méthode ne fonctionnera pas. Le résultat de ce script affiche trois champs. Le premier champ indique le nom de la base de données. Ce champ est essentiel car il nous permet de déterminer si notre base de données cible est utilisée. Le deuxième champ nous aide à classer les connexions à la base de données en connexions utilisateur et connexions réseau. SQL Server connexions internes. La dernière colonne répertorie le nombre de connexions à la base de données.

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éthode 3:

Avant de pousser les données dans la table de journal, dans la méthode 1, nous ne pouvons pas filtrer le nom de la base de données. Cependant, cela est possible dans la méthode 2 et la méthode 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éthode 4:

Profiler SQLCette méthode est très puissante pour identifier l'utilisation de la base de données, mais elle est très gourmande en ressources. Oui, nous parlons de profileur. Choisissez un modèle dans Profiler ou utilisez un modèle personnalisé et suivez les connexions à la base de données.

Supprimer la base de données

Supprimer la base de donnéesÀ partir des méthodes énumérées ci-dessus, vous pourrez identifier si votre base de données est toujours utilisée ou non. Si vous concluez qu'il n'est plus utilisé, la meilleure pratique consiste à informer les équipes respectives qu'il sera supprimé du serveur. Par beau temps, effectuez une sauvegarde COMPLÈTE de cette base de données inutilisée et supprimez-la du serveur. Il faut veiller à ne pas corrompu SQL Server db au cours de ce processus.

Introduction de l'auteur:

Neil Varley est un expert en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris réparer l'erreur de données Outlook pst et des produits logiciels de récupération Excel. Pour plus d'informations, visitez www.datanumen.com

Partage maintenant:

Les commentaires sont fermés.