Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 последнее подключение к бд  [new]
temoxa
Member

Откуда:
Сообщений: 405
Всем привет.. Кто нить знает как проверить когда было последнее подключение к бд?
просто валяется много баз, которые скорее всего не используются..
1 авг 12, 14:14    [12946458]     Ответить | Цитировать Сообщить модератору
 Re: последнее подключение к бд  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
напишите свой аудит
1 авг 12, 14:27    [12946557]     Ответить | Цитировать Сообщить модератору
 Re: последнее подключение к бд  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
temoxa
Всем привет.. Кто нить знает как проверить когда было последнее подключение к бд?
просто валяется много баз, которые скорее всего не используются..
Можно попробовать вот так:
select DB_NAME(s.database_id), 
MAX (CASE WHEN ISNULL(s.last_user_seek, '1900-01-01') > ISNULL(s.last_user_scan, '1900-01-01') 
  THEN 
    CASE WHEN ISNULL(s.last_user_seek, '1900-01-01') > ISNULL(s.last_user_lookup, '1900-01-01') 
    THEN 
      s.last_user_seek
    ELSE
      s.last_user_lookup
    END
  ELSE 
    CASE WHEN ISNULL(s.last_user_scan, '1900-01-01') > ISNULL(s.last_user_lookup, '1900-01-01') 
    THEN 
      s.last_user_scan
    ELSE
      s.last_user_lookup
    END          
  END) AS last_user_read
from sys.dm_db_index_usage_stats AS s
GROUP BY DB_NAME(s.database_id)
ORDER BY last_user_read ASC
2 авг 12, 04:03    [12949918]     Ответить | Цитировать Сообщить модератору
 Re: последнее подключение к бд  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Mind
temoxa
Всем привет.. Кто нить знает как проверить когда было последнее подключение к бд?
просто валяется много баз, которые скорее всего не используются..
Можно попробовать вот так:
select DB_NAME(s.database_id), 
MAX (CASE WHEN ISNULL(s.last_user_seek, '1900-01-01') > ISNULL(s.last_user_scan, '1900-01-01') 
  THEN 
    CASE WHEN ISNULL(s.last_user_seek, '1900-01-01') > ISNULL(s.last_user_lookup, '1900-01-01') 
    THEN 
      s.last_user_seek
    ELSE
      s.last_user_lookup
    END
  ELSE 
    CASE WHEN ISNULL(s.last_user_scan, '1900-01-01') > ISNULL(s.last_user_lookup, '1900-01-01') 
    THEN 
      s.last_user_scan
    ELSE
      s.last_user_lookup
    END          
  END) AS last_user_read
from sys.dm_db_index_usage_stats AS s
GROUP BY DB_NAME(s.database_id)
ORDER BY last_user_read ASC
Хотя конечно лучше за-лефт-джойнить с sys.databases, для случаев если к индексам базы совсем не обращались с момента рестарта сервера, но я думаю вы сами сможете "допилить" запрос.
2 авг 12, 04:13    [12949921]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить