Redshift: сканирование / возвращение большего количества строк, чем необходимо в предложении limit - PullRequest
0 голосов
/ 24 июня 2018

Консоль Redshift показывает, что Redshift сканирует / возвращает больше строк, чем необходимо по условию limit (примечание: мой клиент SQL получает ожидаемое количество строк). Кроме того, Redshift оценивает полное последующее сканирование. Я предполагаю, что это чрезмерное сканирование / возврат замедляет ответ на мой клиент SQL. Почему красное смещение делает это, и как я могу предотвратить это, чтобы увеличить ответ на запрос?

Здесь я limit 1, но отсканировано / возвращено 80 строк: enter image description here

Здесь я limit 1000000, но 40000040 строк сканируются / возвращаются: enter image description here

Здесь я select top 1000 *, но сканируется / возвращается 40040 строк: enter image description here

Эти запросы выполняются для кластера из 20 узлов.

1 Ответ

0 голосов
/ 24 июня 2018

Это функция Redshift, когда вы используете limit, сначала сканируете все данные, а затем ставите их ограничение.

Для решения вашей проблемы используйте top *

Пример ниже:

запрос выбрать * из предела имени таблицы 123456; можно записать как выбрать верхнюю 123456 * из имени таблицы;

Дайте мне знать, чтобы получить дополнительную помощь в Redshift.

...