Ako získať štatistiku používania vášho SQL Server Databáza

Zdieľať teraz:

Pri práci vo veľmi veľkom SQL Server prostredí, je veľmi bežné, že nikto v organizácii nevie, kto používa konkrétnu databázu. Tento scenár je veľmi častý, ak existuje viac starších systémov. Postupujte podľa tohto článku a zistite, ako efektívne je vaše SQL Server používajú sa databázy.

Metóda 1:

V tejto metóde budeme čítať výstup sp_who2 a zaznamenávať ho do tabuľky. Prvým krokom je vytvorenie tabuľky pomocou tohto skriptu.

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

Naplánujte a vykonajte tento skript ako a SQL Server Úloha. Tabuľku protokolov môžeme kedykoľvek skontrolovať, aby sme zistili, či sa naša cieľová databáza používa.

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;

Metóda 2:

Na rozdiel od vyššie uvedenej metódy, ak vás nezaujíma príliš veľa podrobností a chcete len vedieť, či sa databáza používa alebo nie, potom je tento skript najvhodnejší. Ak používate SQL Server s verziou staršou ako 2014 to nebude fungovať. Výstup tohto skriptu zobrazuje 3 polia. Prvé pole poskytuje informácie o názve databázy. Toto je pre nás kľúčové pole, pretože nám pomôže identifikovať, či sa naša cieľová databáza používa. Druhé pole nám pomôže klasifikovať pripojenia k databáze ako používateľské pripojenia vs. SQL Server vnútorné spojenia. V poslednom stĺpci je uvedený počet pripojení k databáze.

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;

Metóda 3:

Pred vložením údajov do tabuľky denníkov v metóde 1 nemôžeme urobiť filter na názov databázy. Je to však možné v metóde 2 a metóde 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;

Metóda 4:

Profiler SQLTáto metóda je veľmi účinná pri identifikácii použitia databázy, ale je veľmi náročná na zdroje. Áno, hovoríme o profiléri. Vyberte šablónu z Profiler alebo použite vlastnú šablónu a sledujte pripojenia k databáze.

Odstráňte databázu

Odstrániť databázuZ vyššie uvedených metód budete schopní zistiť, či sa vaša databáza stále používa alebo nie. Ak prídete k záveru, že sa už nepoužíva, osvedčeným postupom je informovať príslušné tímy o tom, že bude odstránený zo servera. V pekný deň si urobte úplnú zálohu tejto nepoužívanej databázy a odložte ju zo servera. Je potrebné dávať pozor, aby sa tak nestalo skazený SQL Server db počas tohto procesu.

Úvod autora:

Neil Varley je odborníkom na obnovu dát v odbore DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť chybu údajov pst v programe Outlook a vynikajúce softvérové ​​produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S

Zdieľať teraz:

Komentáre sú uzavreté.