Таблица красного смещения - Найти последнюю дату запроса на таблице
Я пытаюсь очистить свою небольшую базу данных и пытаюсь узнать, когда в последний раз некоторые таблицы действительно запрашивались, но не могу найти никакой документации о том, как это сделать. Я могу получить список всех таблиц в моей схеме и размеры, но не могу определить, что может быть устаревшим до опроса моих пользователей.
Кто-нибудь знает способ получить последнюю дату, когда таблица использовалась / запрашивалась в красном смещении?
select
schema,
"table",
size as GB
from svv_table_info
where schema = 'measure' or schema = 'mphd' or schema = 'offer'
order by schema asc;
2 ответа
Вы можете увидеть, когда таблица последний раз сканировалась в stl_scan
, Почти все выбранные запросы будут проверены. Следующее взято из: https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_extended_table_info.sql Как вы заметили, история хранится только в течение ограниченного периода времени.
SELECT tbl,
MAX(endtime) last_scan,
Nvl(COUNT(DISTINCT query || LPAD(segment,3,'0')),0) num_scans
FROM stl_scan s
WHERE s.userid > 1
AND s.tbl IN (SELECT oid FROM tbl_ids)
GROUP BY tbl
Вам вполне возможно придется разбирать записи в STL_QUERYTEXT
, который хранит запросы SQL.
Может быть проще разобрать STL_EXPLAIN
,
Обе эти таблицы могут быть объединены STL_QUERY
чтобы получить время, когда запрос был выполнен.