172 похожих чатов

Подскажите пожалуйста, я делаю такого рода запросы 1) Это таблица

секционированная Декларативно по ключу period_id, вторая обычная
———
Вложенный SELECT возвращает 1но значение 5
———
Разницы в скорости выполнения этих запросов нет ни какой, всё равно сканируются все партиции
———
Если же указать в место вложенного SELECT , IN (5). то выбирается только та партиция которая нужна и время выполнения уже отличается на порядки доли секунды и минуты.
————————
ВОПРОС : Как заставить работать динамическое отсечение партиций во время выполнения запроса ? (В документации написано что это так и работает , на практике нет :( )

8 ответов

15 просмотров

покажите ваш explain? обоих запросов, можете сскинуть на https://explain.depesz.com/ и если у вас таблица периодов возрващает только 1но значение то почему бы его не вытащить во from? а вашу таблицу уже обычно join условие периода просто в where и такой вариант покажите explain

Andrei- Автор вопроса
Amir
покажите ваш explain? обоих запросов, можете сскин...

Одно значение во вложенном SELECT это частный случай для тестов Нужно добиться динамического отсечения партиций во время выполнения запроса, которое анонсировано в документации Это EXPLAIN запроса к партицированной таблице https://explain.depesz.com/s/wQeQ Это к обычной https://explain.depesz.com/s/nl1dQ Это когда SELECT count(*) FROM subject_position_info spi WHERE spi.period_id IN( 5 ); https://explain.depesz.com/s/4hE2

Andrei- Автор вопроса
Andrei
Одно значение во вложенном SELECT это частный случ...

выдержка из документации Устранение секций может производиться не только при планировании конкретного запроса, но и в процессе его выполнения. Благодаря этому может быть устранено больше секций, когда условные выражения содержат значения, неизвестные во время планирования, например параметры, определённые оператором PREPARE, значения, получаемые из подзапросов, или параметризованные значения во внутренней стороне соединения с вложенным циклом.

Andrei
Одно значение во вложенном SELECT это частный случ...

SELECT count(*) FROM period p join subject_position_info spi on spi.period_id = p.period_id where p.qarter = 1 and p.year = 2019; попробуйте так, и покажите explain

Andrei- Автор вопроса
Amir
SELECT count(*) FROM period p join subject_positi...

https://explain.depesz.com/s/C82P Он так же проходится по всем секциям :(

Andrei
https://explain.depesz.com/s/C82P Он так же проход...

а у вас period - это точно таблица, может вьюха?

Andrei- Автор вопроса
Andrei
Таблица, обычная

выше сообщение

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта