Как определить, были ли пользовательские запросы к базам MSSQL за последний год?

Вы столкнулись с ситуацией, когда на сервере под управлением Windows Server 2016 находятся базы данных Microsoft SQL Server (MSSQL), происхождение и назначение которых неизвестно. Возникает закономерный вопрос: как выяснить, обращались ли к этим базам пользовательские приложения за последние 12 месяцев, или они полностью неактивны?

Да, такую информацию получить можно. Для этого в SQL Server существуют встроенные механизмы и динамические административные представления (Dynamic Management Views, DMV), которые хранят историю выполнения запросов и статистику использования объектов.

Основные методы анализа активности

Для решения задачи можно использовать следующие подходы:

  • Анализ планов выполнения (Execution Plans): Запросы к системным представлениям, таким как sys.dm_exec_query_stats и sys.dm_exec_cached_plans, могут показать, какие запросы кэшировались и когда они выполнялись в последний раз. Это один из самых прямых способов.
  • Просмотр статистики использования индексов: Системное представление sys.dm_db_index_usage_stats содержит информацию о том, когда в последний раз происходили операции чтения или записи по каждому индексу таблицы. Отсутствие записей или очень старые даты могут указывать на неактивность.
  • Аудит SQL Server (если включен): Если на сервере ранее был настроен аудит, данные о всех событиях доступа хранятся в указанном месте (файле или таблице). Это наиболее полный, но не всегда доступный вариант.
  • Анализ логов SQL Server и приложений: Изучение журналов ошибок SQL Server и логов приложений на сервере может содержать косвенные свидетельства подключений.

Важные ограничения

Следует учитывать два ключевых момента:

  1. Динамические административные представления (DMV) хранят данные только с момента последнего перезапуска экземпляра SQL Server. Если сервер перезагружался менее года назад, данные за весь период могут быть недоступны.
  2. Запросы, которые выполнялись очень редко или давно, могут быть вытеснены из кэша планов более активными запросами, что сделает их невидимыми для анализа через sys.dm_exec_query_stats.

Таким образом, комбинированный анализ нескольких источников даст наиболее точный ответ о реальной активности пользовательских приложений в ваших базах данных.