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

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

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

8 ответов

11 просмотров

покажите ваш 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
Таблица, обычная

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта