Как получить статистику использования вашего SQL Server Databases

Поделись сейчас:

При работе в очень большом SQL Server среды, очень часто никто в организации не знает, кто использует конкретную базу данных. Этот сценарий очень распространен, если имеется несколько устаревших систем. Следуйте этой статье, чтобы определить, насколько эффективно SQL Server используются базы данных.

Метод 1:

В этом методе мы собираемся прочитать вывод sp_who2 и записать его в таблицу. Первый шаг — создать таблицу с помощью этого скрипта.

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

Запланируйте и выполните этот скрипт как SQL Server Задача. Мы можем в любое время просмотреть таблицу журналов, чтобы определить, используется ли наша целевая база данных.

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;

Метод 2:

В отличие от описанного выше метода, если вас не интересуют слишком много деталей и вы просто хотите знать, используется ли база данных или нет, то этот скрипт подходит лучше всего. Если вы используете SQL Server Если версия старше 2014 года, то это не сработает. Вывод этого скрипта показывает 3 поля. Первое поле содержит информацию об имени базы данных. Это ключевое поле для нас, поскольку оно поможет нам определить, используется ли наша целевая база данных. Второе поле поможет нам классифицировать подключения к базе данных как пользовательские подключения и подключения к ней. SQL Server внутренние связи. В последнем столбце указано количество подключений к базе данных.

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;

Метод 3:

Перед отправкой данных в таблицу журнала в методе 1 мы не можем выполнить фильтрацию по имени базы данных. Однако это возможно в методе 2 и методе 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;

Метод 4:

Профилировщик SQLЭтот метод очень эффективен для определения использования базы данных, но он очень ресурсоемкий. Да, мы говорим о профилировщике. Выберите шаблон из Profiler или используйте собственный шаблон и отслеживайте подключения к базе данных.

Удалить базу данных

Удалить базу данныхИз перечисленных выше методов вы сможете определить, используется ли ваша база данных или нет. Если вы пришли к выводу, что он больше не используется, лучше всего сообщить соответствующим командам, что он будет удален с сервера. В погожий день сделайте ПОЛНУЮ резервную копию этой неиспользуемой базы данных и сбросьте ее с сервера. Необходимо соблюдать осторожность, чтобы не и коррумпированных лиц SQL Server db во время этого процесса.

Об авторе:

Нил Варли — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить ошибку данных Outlook PST и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.