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

Откуда:
Сообщений: 226
Коллеги, добрый вечер.

Подскажите, пожалуйста, есть ли запрос, который показал бы дату и время последнего доступа к таблице БД?

В данный момент пользуюсь следующим запросом, однако мне нужно, чтобы таблицу можно бы было указывать вместе со схемой. Также проблема в том, что запрос показывает информацию не по всем таблицам - мне необходимо проверить информацию по 1154 таблицам. Есть ли какой то оптимальный вариант. Возможно, есть какойто другой запрос?

SELECT
T.NAME
,USER_SEEKS
,USER_SCANS
,USER_LOOKUPS
,USER_UPDATES
,LAST_USER_SEEK
,LAST_USER_SCAN
,LAST_USER_LOOKUP
,LAST_USER_UPDATE
,modify_date
FROM
SYS.DM_DB_INDEX_USAGE_STATS I JOIN
SYS.TABLES T ON (T.OBJECT_ID = I.OBJECT_ID)
WHERE DATABASE_ID = DB_ID()
AND T.NAME = 'Customers'
ORDER BY LAST_USER_UPDATE DESC
GO

- заранее благодарен.
9 дек 19, 17:29    [22036067]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1240
dermama,
https://blog.sqlauthority.com/2009/05/09/sql-server-find-last-date-time-updated-for-any-table/
ничего лучше я не нашел
SELECT OBJECT_NAME(OBJECT_ID) AS TableName,
 last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'AdventureWorks')
AND OBJECT_ID=OBJECT_ID('test'


если у таблицы нет индексов то и все - не поадет сюда

SELECT 
    name AS TableName, 
    create_date AS CreatedDate, 
    modify_date as ModifyDate 
FROM sys.tables 
order by ModifyDate;


но тоже не даю гарантии

Сообщение было отредактировано: 9 дек 19, 17:38
9 дек 19, 17:35    [22036082]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Гулин Федор

если у таблицы нет индексов то и все - не поадет сюда

чего это не попадет-то.
sys.dm_db_index_usage_stats кучи тоже отображает.
вот если обращений совсем не было, тогда не попадет
9 дек 19, 17:40    [22036091]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Гулин Федор

SELECT 
    name AS TableName, 
    create_date AS CreatedDate, 
    modify_date as ModifyDate 
FROM sys.tables 
order by ModifyDate;


но тоже не даю гарантии

еще бы.
modify_date тут никаким местом.
это же время изменения таблицы (DDL).
а ТС спрашивает об обращении к таблице, какой уж тут DDL
9 дек 19, 17:42    [22036100]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
L_argo
Member

Откуда:
Сообщений: 1217
Вместо запроса к таблице юзать хран.процедуру, где и вести лог.

Сама формулировка вопроса какая-то дебильная.
9 дек 19, 17:54    [22036123]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
L_argo
Вместо запроса к таблице юзать хран.процедуру, где и вести лог.

Сама формулировка вопроса какая-то дебильная.

ничего дебильного в формулировке нет.
если ТС должен найти таблицы,
к которым уже год как не обращаются,
то скорее бредом будет требовать, чтобы "все всегда читали только через процедуры и вели при этом лог"
9 дек 19, 17:57    [22036124]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
dermama
Member

Откуда:
Сообщений: 226
Yasha123
L_argo
Вместо запроса к таблице юзать хран.процедуру, где и вести лог.

Сама формулировка вопроса какая-то дебильная.

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


Приветствую - к таблицам обращаются, - так как все они используются в отчетах, которыми пользуются на регулярной основе, какими то чаще, какими то реже. Но суть задачи узнать дату последнего обращения к таблице, так как таблицы могу использоваться не только в этих отчетах.
9 дек 19, 18:07    [22036142]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
ну если надо все таблицы, то почему иннер,
а схема в sys.tables есть
select   schema_name(t.schema_id) as sch
		,t.name
		,user_seeks
		,user_scans
		,user_lookups
		,user_updates
		,last_user_seek
		,last_user_scan
		,last_user_lookup
		,last_user_update
		,modify_date
from sys.tables t 
	 left join sys.dm_db_index_usage_stats i 
	    on t.object_id = i.object_id
where database_id = db_id()
order by last_user_update desc;
9 дек 19, 18:20    [22036161]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
L_argo
Member

Откуда:
Сообщений: 1217
Но суть задачи узнать дату последнего обращения к таблице
А зачем ? Ну узнали. Что дальше ?

Если это поиск ненужных таблиц, то это делается не так.
10 дек 19, 10:03    [22036555]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
L_argo
Но суть задачи узнать дату последнего обращения к таблице
А зачем ? Ну узнали. Что дальше ?

Если это поиск ненужных таблиц, то это делается не так.

ну расскажите, как
10 дек 19, 11:03    [22036618]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
sergeimv
Member

Откуда: Россия, г.Казань
Сообщений: 42
Yasha123,

Только при перезапуске службы вся информация из sys.dm_db_index_usage_stats теряется.
10 дек 19, 12:55    [22036784]     Ответить | Цитировать Сообщить модератору
 Re: Дата, время последнего доступа к таблице  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
sergeimv

Только при перезапуске службы вся информация из sys.dm_db_index_usage_stats теряется.

я в курсе.
еще и перевод базы в оффлайн чистит эту статистику,
а у некоторых перевод в оффлайн это вообще часть ежедневного обслуживания.
главное, чтобы об этом помнил анализирующий.
10 дек 19, 13:30    [22036835]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить