|
|
|
@ -172,22 +172,50 @@ reset enable_bitmapscan; |
|
|
|
|
-- test parallel bitmap heap scan. |
|
|
|
|
set enable_seqscan to off; |
|
|
|
|
set enable_indexscan to off; |
|
|
|
|
set enable_hashjoin to off; |
|
|
|
|
set enable_mergejoin to off; |
|
|
|
|
set enable_material to off; |
|
|
|
|
set effective_io_concurrency=50; |
|
|
|
|
set work_mem='64kB'; --set small work mem to force lossy pages |
|
|
|
|
explain (costs off) |
|
|
|
|
select count((unique1)) from tenk1 where hundred > 1; |
|
|
|
|
select count(*) from tenk1, tenk2 where tenk1.hundred > 1 and tenk2.thousand=0; |
|
|
|
|
QUERY PLAN |
|
|
|
|
------------------------------------------------------------ |
|
|
|
|
Finalize Aggregate |
|
|
|
|
-> Gather |
|
|
|
|
Workers Planned: 4 |
|
|
|
|
-> Partial Aggregate |
|
|
|
|
Aggregate |
|
|
|
|
-> Nested Loop |
|
|
|
|
-> Seq Scan on tenk2 |
|
|
|
|
Filter: (thousand = 0) |
|
|
|
|
-> Gather |
|
|
|
|
Workers Planned: 4 |
|
|
|
|
-> Parallel Bitmap Heap Scan on tenk1 |
|
|
|
|
Recheck Cond: (hundred > 1) |
|
|
|
|
-> Bitmap Index Scan on tenk1_hundred |
|
|
|
|
Index Cond: (hundred > 1) |
|
|
|
|
(8 rows) |
|
|
|
|
(10 rows) |
|
|
|
|
|
|
|
|
|
select count(*) from tenk1, tenk2 where tenk1.hundred > 1 and tenk2.thousand=0; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
98000 |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
create table bmscantest (a int, t text); |
|
|
|
|
insert into bmscantest select r, 'fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' FROM generate_series(1,100000) r; |
|
|
|
|
create index i_bmtest ON bmscantest(a); |
|
|
|
|
select count(*) from bmscantest where a>1; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
99999 |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
reset enable_seqscan; |
|
|
|
|
reset enable_indexscan; |
|
|
|
|
reset enable_hashjoin; |
|
|
|
|
reset enable_mergejoin; |
|
|
|
|
reset enable_material; |
|
|
|
|
reset effective_io_concurrency; |
|
|
|
|
reset work_mem; |
|
|
|
|
drop table bmscantest; |
|
|
|
|
-- test parallel merge join path. |
|
|
|
|
set enable_hashjoin to off; |
|
|
|
|
set enable_nestloop to off; |
|
|
|
|