Kako pridobiti statistiko uporabe vašega SQL Server Baze podatkov

Skupna raba zdaj:

Pri delu v zelo velikem SQL Server okolju je zelo pogosto, da nihče v organizaciji ne ve, kdo uporablja določeno bazo podatkov. Ta scenarij je zelo pogost, če obstaja več podedovanih sistemov. Upoštevajte ta članek, da ugotovite, kako učinkovito je vaše SQL Server podatkovne baze.

Metoda 1:

Pri tej metodi bomo prebrali izhod sp_who2 in ga zajeli v tabeli. Prvi korak je ustvariti tabelo s tem skriptom.

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()
    );

Načrtujte in izvedite ta skript kot a SQL Server Naloga. Dnevniško tabelo lahko kadar koli pregledamo, da ugotovimo, ali se naša ciljna baza podatkov uporablja.

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;

Metoda 2:

Za razliko od zgornje metode, če vas ne zanima preveč podrobnosti in želite samo vedeti, ali je zbirka podatkov v uporabi ali ne, potem je ta skript najboljši. Če uporabljate SQL Server z različico, starejšo od leta 2014, to ne bo delovalo. Izhod tega skripta prikazuje 3 polja. Prvo polje vsebuje informacije o imenu baze podatkov. To je ključno polje za nas, saj nam bo pomagalo ugotoviti, ali je naša ciljna baza podatkov v uporabi. Drugo polje nam bo pomagalo razvrstiti povezave z bazo podatkov kot uporabniške povezave oz. SQL Server notranje povezave. V zadnjem stolpcu je navedeno število povezav z bazo podatkov.

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;

Metoda 3:

Preden podatke potisnemo v tabelo dnevnika, pri metodi 1 ne moremo narediti filtra za ime baze podatkov. Vendar je to mogoče pri 2. in 3. metodi.

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;

Metoda 4:

SQL ProfilerTa metoda je zelo zmogljiva pri ugotavljanju uporabe baze podatkov, vendar zahteva zelo veliko virov. Ja, govorimo o profilerju. Izberite predlogo iz Profilerja ali uporabite predlogo po meri in sledite povezavam baze podatkov.

Odstranite bazo podatkov

Odstranite bazo podatkovZ zgoraj navedenimi metodami boste lahko ugotovili, ali se vaša baza podatkov še vedno uporablja ali ne. Če ugotovite, da se ne uporablja več, je najbolje, da obvestite ustrezne ekipe, da bo odstranjen s strežnika. Na lep dan naredite POPOLNO varnostno kopijo te neuporabljene baze podatkov in jo spustite s strežnika. Paziti je treba, da ne pokvarjena SQL Server db med tem postopkom.

Uvod avtorja:

Neil Varley je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z popravi podatkovno napako Outlook pst in excel programske izdelke za obnovitev. Za več informacij obiščite www.datanumen.com

Skupna raba zdaj:

Komentarji so zaprti.