В Redshift SVV_TABLE_INFO отсутствуют идентификаторы таблиц, которые должны быть там, если смотреть на STL_QUERY и STL_SCAN - PullRequest
0 голосов
/ 04 октября 2019

Я изучаю Redshift запросов и таблицы, которые они сканируют. Я делаю это, начиная с системного представления STL_QUERY, затем присоединяясь к представлению STL_SCAN для добавления таблиц, которые сканируются запросом.

Теперь, когда я исследую оператор запроса, я вижу, что ОДНА настоящая таблица Redshiftследует сканировать, посмотрев на инструкцию SELECT. Тем не менее, данные STL_SCAN показывают мне три таблицы (348, 671 и 751341)

. Из этих трех только одна (751341) является реальной, которую можно найти при объединении с SVV_TABLE_INFO.

Какие еще 2 таблицы?

1 Ответ

1 голос
/ 04 октября 2019

Redshift присваивает промежуточным результатам идентификаторы таблицы с низкими номерами (проекции между этапами запроса, результаты сортировки и т. Д.). В некоторых случаях промежуточные результаты записываются на диск, и при сканировании этих результатов есть запись в stl_scan.

. В документе «Рабочий процесс анализа запросов» содержится подробное руководство по рассмотрению запросов Redshift. https://docs.aws.amazon.com/redshift/latest/dg/c-query-analysis-process.html

В качестве первого шага вы можете начать с просмотра плана объяснения и сводки запросов, используя следующие запросы:

--Explain Plan of a Given Query ID
SELECT userid, query, plannode, info
FROM stl_explain
WHERE query IN (79639676)
ORDER BY query, nodeid, parentid
;

--Processing Summary of a Given Query ID
SELECT *
FROM svl_query_summary a
WHERE query IN  (2251580)
ORDER BY query, stm, seg, step
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...