Kako doći do statistike korištenja vašeg SQL Server Baze podataka

Podijeli sada:

Kada se radi u vrlo velikom SQL Server okruženju, vrlo je uobičajeno da nitko u organizaciji ne zna tko koristi određenu bazu podataka. Ovaj je scenarij vrlo čest ako postoji više naslijeđenih sustava. Slijedite ovaj članak kako biste saznali koliko je vaš SQL Server koriste se baze podataka.

Metoda 1:

U ovoj metodi, pročitat ćemo izlaz sp_who2 i uhvatiti ga u tablicu. Prvi korak je kreiranje tablice 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 SQL Server Posao. Tablicu zapisnika možemo pregledati u bilo kojem trenutku kako bismo utvrdili koristi li se 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;

Metoda 2:

Za razliku od gornje metode, ako vas ne zanima previše detalja i samo želite znati je li baza podataka u upotrebi ili ne, onda je ova skripta najbolja opcija. Ako koristite SQL Server s verzijom starijom od 2014., 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 je li naša ciljna baza podataka u upotrebi. Drugo polje će nam pomoći da klasificiramo veze s bazom podataka kao korisničke veze u odnosu na SQL Server unutarnje veze. Posljednji stupac 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;

Metoda 3:

Prije guranja podataka u tablicu dnevnika, u metodi 1, ne možemo napraviti filtar na nazivu 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;

Metoda 4:

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

Uklonite bazu podataka

Uklonite bazu podatakaPomoću gore navedenih metoda moći ćete utvrditi koristi li se vaša baza podataka još uvijek ili ne. Ako zaključite da se više ne koristi, najbolje je obavijestiti odgovarajuće timove da će biti uklonjen s poslužitelja. Za lijepog dana napravite POTPUNU sigurnosnu kopiju ove nekorištene baze podataka i ispustite je s poslužitelja. Treba paziti da se ne pokvariti SQL Server db tijekom ovog procesa.

Uvod za autora:

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

Podijeli sada:

Komentari su zatvoreni.