Таблица красного смещения - Найти последнюю дату запроса на таблице

Я пытаюсь очистить свою небольшую базу данных и пытаюсь узнать, когда в последний раз некоторые таблицы действительно запрашивались, но не могу найти никакой документации о том, как это сделать. Я могу получить список всех таблиц в моей схеме и размеры, но не могу определить, что может быть устаревшим до опроса моих пользователей.

Кто-нибудь знает способ получить последнюю дату, когда таблица использовалась / запрашивалась в красном смещении?

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 чтобы получить время, когда запрос был выполнен.

Другие вопросы по тегам