После добавления большого столбца типа Array сканирование диапазона Phoenix замедляется - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть таблица Pheonix, TableXXX

Когда я делаю этот запрос:

SELECT "LINENAME","XL_CDP","IL_SP","CDP_X","CDP_Y", "SAMPLES" FROM TableXXX WHERE ( "LINENAME" = 'AAA' AND "IL_SP" >= 890 AND "IL_SP" <= 9381);

Вышеуказанный SQL работает медленно, и для получения результата требуется около 50 секунд.

Это объяснение этого пункта:

+----------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------+----------------+
| PLAN | EST_BYTES_READ | EST_ROWS_READ | EST_INFO_TS |
+----------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------+----------------+
| CLIENT 1-CHUNK 1052082 ROWS 314572800 BYTES PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER TableXXX [0,'AAA',890] - [0,'AAA',9381] | 314572800 | 1052082 | 1556459749349 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------+----------------+

Но если я немного изменим SQL, как показано ниже, просто удалите «SAMPLE» из предложения select, он станет намного быстрее, потребуется всего около 1 с.

SELECT "LINENAME","XL_CDP","IL_SP","CDP_X","CDP_Y", FROM TableXXX WHERE ( "LINENAME" IS NOT NULL AND "LINENAME" = 'AAA' AND "IL_SP" >= 890 AND "IL_SP" IS NOT NULL AND "IL_SP" <= 9381);

Этот SQL вернет 25476 записей.

И столбец SAMPLE имеет тип ARRAY, имеет 24000 байтов на запись. А остальные столбцы имеют обычный размер в несколько байтов каждый.

Даже столбец SAMPLES сравнительно больше других столбцов, я думаю, что он все равно должен быть быстрее, чем 50 с, чтобы получить результат.

В этой таблице только 1 регион, и в общей сложности 488277 записей, а общий размер таблицы составляет 12 ГБ.

Приветствия

...