Как получить таблицы, которые обрабатываются данным запросом в красном смещении - PullRequest
0 голосов
/ 16 апреля 2020

Есть ли способ получить таблицы, которыми управляет данный запрос? Например, приведенный ниже запрос работает с таблицей 'ab c':

select * from abc

После того, как запрос успешно выполнен, можем ли мы извлечь таблицы, в которых запрос фактически работал в красное смещение?

1 Ответ

1 голос
/ 19 апреля 2020

Харша - да и несколькими способами. Самое простое - запросить системную таблицу stl_scan, в которой перечислены все просмотры таблиц и номер запроса, сгенерировавшего сканирование. Вопрос для вас: как вы хотите определить запрос, который вы только что выполнили? По тексту? По текущему идентификатору сессии? Stl_scan будет содержать много данных для занятого кластера, поэтому вы хотите найти только те строки, которые вам нужны. Если в текущем сеансе вы можете использовать "where pid = (SELECT pg_backend_pid ())", чтобы запрос выполнялся в текущем сеансе, но pid отсутствует в stl_scan, поэтому вам нужно присоединиться к stl_query, в котором есть как pid, так и номер запроса. Вы также захотите иметь в своем запросе «где время начала> getdate () - интервал« 1 час »», поэтому вы не просматриваете всю историю для получения информации о запросе, который вы только что выполнили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...