Jak uzyskać statystyki użytkowania swojego SQL Server Bazy danych

Podziel się teraz:

Podczas pracy w bardzo dużym SQL Server środowiska, bardzo często w organizacji nikt nie wie, kto korzysta z danej bazy danych. Ten scenariusz jest bardzo powszechny, jeśli istnieje wiele starszych systemów. Postępuj zgodnie z tym artykułem, aby dowiedzieć się, jak skutecznie Twój SQL Server baz danych.

Metoda 1:

W tej metodzie będziemy odczytywać dane wyjściowe sp_who2 i przechwytywać je w tabeli. Pierwszym krokiem jest utworzenie tabeli za pomocą tego skryptu.

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

Zaplanuj i wykonaj ten skrypt jako plik SQL Server Zadanie. Możemy w każdej chwili przejrzeć tabelę dziennika, aby sprawdzić, czy nasza docelowa baza danych jest używana.

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:

W przeciwieństwie do powyższej metody, jeśli nie interesuje Cię zbyt wiele szczegółów i chciałbyś tylko wiedzieć, czy baza danych jest używana, czy nie, ten skrypt jest najlepszym rozwiązaniem. Jeśli używasz SQL Server W przypadku wersji starszej niż 2014, to nie zadziała. Wynik tego skryptu pokazuje 3 pola. Pierwsze pole zawiera informacje o nazwie bazy danych. Jest to dla nas kluczowe pole, ponieważ pomoże nam zidentyfikować, czy docelowa baza danych jest używana. Drugie pole pomoże nam sklasyfikować połączenia z bazą danych jako połączenia użytkowników, a nie… SQL Server połączenia wewnętrzne. Ostatnia kolumna zawiera liczbę połączeń z bazą danych.

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:

Przed wypchnięciem danych do tabeli dziennika w metodzie 1 nie możemy wykonać filtru na podstawie nazwy bazy danych. Jest to jednak możliwe w metodzie 2 i metodzie 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:

Profiler SQLTa metoda jest bardzo skuteczna w identyfikowaniu użycia bazy danych, ale wymaga dużych zasobów. Tak, mówimy o profilerze. Wybierz szablon z programu Profiler lub użyj szablonu niestandardowego i śledź połączenia z bazą danych.

Usuń bazę danych

Usuń bazę danychNa podstawie wyżej wymienionych metod będziesz w stanie określić, czy Twoja baza danych jest nadal używana, czy nie. Jeśli dojdziesz do wniosku, że nie jest już używany, najlepszą praktyką jest poinformowanie odpowiednich zespołów, że zostanie usunięty z serwera. W pogodny dzień zrób PEŁNĄ kopię zapasową tej nieużywanej bazy danych i upuść ją z serwera. Należy uważać, aby tego nie robić skorumpowany SQL Server db podczas tego procesu.

Wprowadzenie autora:

Neil Varley jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym Napraw błąd danych pst programu Outlook i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.