Kako dobiti statistiku upotrebe vašeg SQL Server baze podataka

Podijeli sada:

Prilikom rada u veoma velikom SQL Server okruženju, vrlo je uobičajeno da niko u organizaciji ne zna ko koristi određenu bazu podataka. Ovaj scenario je vrlo čest ako postoji više naslijeđenih sistema. Slijedite ovaj članak da biste utvrdili koliko je vaš SQL Server koriste se baze podataka.

Način 1:

U ovoj metodi ćemo pročitati izlaz sp_who2 i snimiti ga u tablicu. Prvi korak je kreiranje tabele pomoću ove skripte.

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

Zakažite i izvršite ovu skriptu kao a SQL Server Posao. Možemo pregledati tabelu dnevnika u bilo kojem trenutku kako bismo utvrdili da li se koristi naša ciljna baza podataka.

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;

Način 2:

Za razliku od gornje metode, ako vas ne zanima previše detalja i samo želite znati da li se baza podataka koristi ili ne, onda je ova skripta najbolja. Ako koristite SQL Server sa verzijom starijom od 2014. godine, ovo neće raditi. Izlaz ovog skripta prikazuje 3 polja. Prvo polje daje informacije o nazivu baze podataka. Ovo je ključno polje za nas jer će nam pomoći da utvrdimo da li je naša ciljna baza podataka u upotrebi. Drugo polje će nam pomoći da klasifikujemo veze s bazom podataka kao korisničke veze u odnosu na... SQL Server interne veze. Posljednja kolona navodi broj veza s bazom podataka.

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;

Način 3:

Prije guranja podataka u tablicu dnevnika, u metodi 1, ne možemo napraviti filter imena baze podataka. Međutim, to je moguće u Metodi 2 i Metodi 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;

Način 4:

SQL ProfilerOva metoda je vrlo moćna u identifikaciji korištenja baze podataka, ali je vrlo intenzivna. Da, govorimo o profileru. Odaberite predložak iz Profilera ili koristite prilagođeni predložak i pratite veze s bazom podataka.

Uklonite bazu podataka

Uklonite bazu podatakaIz gore navedenih metoda, moći ćete identificirati da li se vaša baza podataka još uvijek koristi ili ne. Ako dođete do zaključka da se više ne koristi, najbolja praksa je da obavijestite odgovarajuće timove da će biti uklonjena sa servera. U lijepom danu napravite CIJELU sigurnosnu kopiju ove neiskorištene baze podataka i ispustite je sa servera. Mora se paziti da ne korumpiran SQL Server db tokom ovog procesa.

Uvod za autora:

Neil Varley je stručnjak za oporavak podataka DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući popravi Outlook pst grešku u podacima i Excel softverski proizvodi za oporavak. Za više informacija posjetite www.datanumen.com

Podijeli sada:

Komentari su zatvoreni.