|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
Товарищи, добрый день! Подскажите пожалуйста, работает ли секционирование по jsonb с использование jsquery? Начал тестировать, оказалось что если использовать явные обращения к объектам : Код: plsql 1.
Код: sql 1.
То партицирование при обращении к родительской таблице срабатывает. Но если сделать так : Код: plsql 1.
То запрос ходит по всем партициям. В связи с этим вопрос, реализовано ли секционирование при помощи jsquery? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 11:20 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
inforse, Условие в check должно совпадать с условием в запросе. А вы запросы не привели и я подозреваю что когда по всем партициям шел перебор - вы с условием в запросе что то накрутили не то. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 14:03 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
Maxim Boguk, offtop гораздо страньше, что условие вида where tableoid=constant... не учитывается планировщиком. //по крайней -- не учитывался, когда я это проверял// как грицца -- "это всё, что вам нужно знать о ..." ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 14:09 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
qwwqMaxim Boguk, offtop гораздо страньше, что условие вида where tableoid=constant... не учитывается планировщиком. //по крайней -- не учитывался, когда я это проверял// как грицца -- "это всё, что вам нужно знать о ..." То что к системным полям таблицы можно обращаться из запросов - совсем не значит что так можно/нужно/стоит делать в реальности кроме ситуации решения каких то проблем с базой. -- Maxim Boguk dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 14:48 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
Maxim BogukТо что к системным полям таблицы ... вернее так: "то, что так было бы проще решать многие проблемы партицирования (в т.ч. помогать планировщику) совсем не означает, что писатели планировщика колхозники, а вы, максим, -- дятел" (что--то не могу найти, но вам я уже с мишей это где-то тут сообщал) (да, я болван 17672024 ; 17489274 ; 17470725 ; , как вы помните, но не настолько) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 15:04 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
Maxim Boguk, Прошу прощения за недостаток информации. Одна из таблиц партиций Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Запрос: Код: plsql 1.
Планировщик: "Append (cost=0.00..312.56 rows=27 width=36) (actual time=0.214..0.214 rows=0 loops=1)" " -> Seq Scan on seans_kz_jb_ (cost=0.00..0.00 rows=1 width=36) (actual time=0.002..0.002 rows=0 loops=1)" " Filter: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_735 (cost=8.01..12.02 rows=1 width=36) (actual time=0.014..0.014 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_735_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.013..0.013 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_716 (cost=8.01..12.02 rows=1 width=36) (actual time=0.010..0.010 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_716_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.009..0.009 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_721 (cost=8.01..12.02 rows=1 width=36) (actual time=0.006..0.006 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_721_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.006..0.006 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_731 (cost=8.01..12.02 rows=1 width=36) (actual time=0.009..0.009 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_731_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.008..0.008 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_744 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_744_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_702 (cost=8.01..12.02 rows=1 width=36) (actual time=0.009..0.009 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_702_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.009..0.009 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_734 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_734_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_733 (cost=8.01..12.02 rows=1 width=36) (actual time=0.004..0.004 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_733_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.004..0.004 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_747 (cost=8.01..12.02 rows=1 width=36) (actual time=0.004..0.004 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_747_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.004..0.004 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_701 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_701_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_754 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_754_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.005..0.005 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_753 (cost=8.01..12.02 rows=1 width=36) (actual time=0.003..0.003 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_753_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.003..0.003 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_742 (cost=8.01..12.02 rows=1 width=36) (actual time=0.014..0.014 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_742_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.014..0.014 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_732 (cost=8.01..12.02 rows=1 width=36) (actual time=0.008..0.008 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_732_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.008..0.008 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_801 (cost=8.01..12.02 rows=1 width=36) (actual time=0.009..0.009 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_801_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_736 (cost=8.01..12.02 rows=1 width=36) (actual time=0.013..0.013 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_736_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.011..0.011 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_719 (cost=8.01..12.02 rows=1 width=36) (actual time=0.006..0.006 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_719_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.006..0.006 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_723 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_723_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_717 (cost=8.01..12.02 rows=1 width=36) (actual time=0.012..0.012 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_717_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.006..0.006 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_730 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_730_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_755 (cost=8.01..12.02 rows=1 width=36) (actual time=0.014..0.014 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_755_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.013..0.013 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_751 (cost=8.01..12.02 rows=1 width=36) (actual time=0.006..0.006 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_751_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.004..0.004 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_715 (cost=8.01..12.02 rows=1 width=36) (actual time=0.005..0.005 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_715_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.005..0.005 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_743 (cost=8.01..12.02 rows=1 width=36) (actual time=0.009..0.009 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_743_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.008..0.008 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_745 (cost=8.01..12.02 rows=1 width=36) (actual time=0.005..0.005 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_745_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.003..0.003 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Heap Scan on seans_kz_jb_720 (cost=8.01..12.02 rows=1 width=36) (actual time=0.007..0.007 rows=0 loops=1)" " Recheck Cond: (kz @@ '"passport"."list" = 701'::jsquery)" " -> Bitmap Index Scan on seans_kz_jb_720_kz_idx (cost=0.00..8.01 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=1)" " Index Cond: (kz @@ '"passport"."list" = 701'::jsquery)" "Planning time: 3.070 ms" "Execution time: 0.612 ms" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 15:10 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
inforse, Странные дела творятся да. Судя по документации: "JsQuery matchig operator @@ is immutable and can be used in CHECK constraint." - должно работать. На всякий случай покажите что у вас говорит \df+ jsquery_json_exec -- Maxim Boguk dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 16:24 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
Maxim Boguk, Код: powershell 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 16:55 |
|
Партицирование по jsonb
|
|||
---|---|---|---|
#18+
inforse, pg_pathman секционировали? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 20:22 |
|
|
start [/forum/topic.php?fid=53&fpage=74&tid=1996551]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 152ms |
0 / 0 |