Я использую "PostgreSQL 11.4, скомпилированный в Visual C ++ build 1914, 64-bit"
Я хочу запустить параллельный запрос для тестирования, ниже приведены значения моего параметра pg_settings:
"checkpoint_completion_target" >> "0.5"
"default_statistics_target" >> "100"
"effective_cache_size" >> "524288" "8kB"
"maintenance_work_mem" >> "65536" "kB"
"max_connections" >> "100"
"max_parallel_workers" >> "8"
"max_parallel_workers_per_gather" >> "2"
"max_wal_size" >> "1024" "MB"
"max_worker_processes" >> "8"
"min_wal_size" >> "80" "MB"
"random_page_cost" >> "4"
"shared_buffers" >> "16384" "8kB"
"wal_buffers" >> "512" "8kB"
"work_mem" >> "4096" "kB"
Хотя я пытаюсь объяснить запрос, он не показывает «Запланированные работники», как подтвердить, поддерживает ли моя БД параллельный запрос или нет?
+++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++
EXPLAIN select /*+ PARALLEL(test_table 2) */ * from test_table where col_6 = 'Submitted'
--------------------------------------------------------------------
"Seq Scan on test_table (cost=0.00..3858.50 rows=2633 width=928)"
" Filter: (col_6 = 'Submitted'::text)"
=============================================== =====================
Если я включаю force_parallel_mode, то он показывает 'Workers Planned', но всегда имеет значение 1. Что не так с моей настройкой или БД для запуска параллельного запроса?
+++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++
set force_parallel_mode = on;
--------------------------------------------------------------------
EXPLAIN select /*+ PARALLEL(test_table 2) */ * from test_table where col_6 = 'Submitted'
--------------------------------------------------------------------
"Gather (cost=1000.00..5121.80 rows=2633 width=928)"
" Workers Planned: 1"
" Single Copy: true"
" -> Seq Scan on test_table (cost=0.00..3858.50 rows=2633 width=928)"
" Filter: (col_6 = 'Submitted'::text)"
=============================================== =====================