Подтвердить что ты не робот

Как вы находите в последний раз доступ к базе данных?

В SQL Server 2005 вы можете легко определить последний раз, когда кто-то запросил базу данных.

4b9b3361

Ответ 1

SELECT
last_user_seek = MAX(last_user_seek),
last_user_scan = MAX(last_user_scan),
last_user_lookup = MAX(last_user_lookup),
last_user_update = MAX(last_user_update)
FROM
sys.dm_db_index_usage_stats
WHERE
[database_id] = DB_ID()

Одно из предостережений с этим методом заключается в том, что информация в DMV будет очищена и отменена при каждом перезапуске SQL Server.

Ответ 2

Нашел это в MySQLtips - работал у меня.

select d.name, x1 =
(select X1= max(bb.xx) 
from (
    select xx = max(last_user_seek) 
        where max(last_user_seek) is not null 
    union all 
    select xx = max(last_user_scan) 
        where max(last_user_scan) is not null 
    union all 
    select xx = max(last_user_lookup) 
        where max(last_user_lookup) is not null 
    union all 
        select xx = max(last_user_update) 
        where max(last_user_update) is not null) bb) 
FROM master.dbo.sysdatabases d 
left outer join 
sys.dm_db_index_usage_stats s 
on d.dbid= s.database_id 
group by d.name

Ответ 3

Чтобы расширить ответ Джеймса Аллена:

SELECT d.name,
last_user_seek = MAX(last_user_seek),
last_user_scan = MAX(last_user_scan),
last_user_lookup = MAX(last_user_lookup),
last_user_update = MAX(last_user_update)
FROM sys.dm_db_index_usage_stats AS i
JOIN sys.databases AS d ON i.database_id=d.database_id
GROUP BY d.name

Используйте эту измененную версию, если вы не хотите получать результаты в контексте базы данных и хотите включить имя базы данных в начале набора результатов.

Ответ 4

Вам нужно провести аудит или настроить трассировку сервера SQL заблаговременно.

Ответ 5

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

-Adam

Ответ 6

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

выполните следующие действия, чтобы включить проверку всех/успешных соединений с помощью Enterprise Manager в SQL Server:

Разверните группу серверов. Щелкните правой кнопкой мыши сервер и выберите "Свойства". На вкладке "Безопасность" в разделе "Уровень аудита" нажмите "Все" / "Успех" и т.д. (Требуется опция).

Вы должны остановить и перезапустить сервер, чтобы этот параметр вступил в силу.

Ответ 7

Как и в приведенных выше методах, но чтобы получить результат просто как одно значение для конкретного идентификатора базы данных (в этом примере это 6)

select max(LastAccess)
from (
    SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
    union
    SELECT last_user_lookup as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
    union
    SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
    union
    SELECT last_user_update as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
) UserAccess