Hoe u de gebruiksstatistieken van uw SQL Server Databases

Bij het werken in een zeer grote SQL Server omgeving, is het heel gebruikelijk dat niemand in de organisatie weet wie een bepaalde database gebruikt. Dit scenario is heel gebruikelijk als er meerdere legacysystemen zijn. Volg dit artikel om te bepalen hoe effectief uw SQL Server databases worden gebruikt.

Methode 1:

Bij deze methode gaan we de uitvoer van sp_who2 lezen en vastleggen in een tabel. De eerste stap is om de tabel te maken met behulp van dit 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()
    );

Plan en voer dit script uit als een SQL Server Taak. We kunnen de logtabel op elk gewenst moment raadplegen om te controleren of onze doeldatabase in gebruik is.

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;

Methode 2:

In tegenstelling tot de bovenstaande methode, als u niet in teveel details geïnteresseerd bent en alleen wilt weten of de database in gebruik is of niet, dan is dit script de beste keuze. Als u SQL Server Met versies ouder dan 2014 werkt dit niet. De uitvoer van dit script toont 3 velden. Het eerste veld geeft informatie over de databasenaam. Dit is het belangrijkste veld voor ons, omdat het ons helpt te bepalen of onze doeldatabase in gebruik is. Het tweede veld helpt ons de verbindingen met de database te classificeren als gebruikersverbindingen versus niet-gebruikersverbindingen. SQL Server interne verbindingen. In de laatste kolom staat het aantal verbindingen met de 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;

Methode 3:

Voordat we de gegevens in de logtabel pushen, in methode 1, kunnen we geen filter op de databasenaam uitvoeren. Het is echter mogelijk in methode 2 en methode 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;

Methode 4:

SQL-profilerDeze methode is zeer krachtig bij het identificeren van databasegebruik, maar vergt veel middelen. Ja, we hebben het over profiler. Kies een sjabloon uit Profiler of gebruik een aangepast sjabloon en houd databaseverbindingen bij.

Verwijder de database

Verwijder de databaseAan de hand van bovenstaande methoden kunt u bepalen of uw database nog steeds wordt gebruikt of niet. Als u tot de conclusie komt dat het niet meer wordt gebruikt, kunt u het beste de respectievelijke teams laten weten dat het van de server zal worden verwijderd. Maak op een mooie dag een VOLLEDIGE back-up van deze ongebruikte database en verwijder deze van de server. Er moet voor worden gezorgd dat dit niet gebeurt corrupt SQL Server db tijdens dit proces.

Auteur Introductie:

Neil Varley is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie Outlook pst-gegevensfout en Excel-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.