> On Jul 7, 2019, at 5:49 PM, Tom Mercha <merch...@hotmail.com> wrote: > > On 08/07/2019 01:46, Rob Sargent wrote: >> >> >>> On Jul 7, 2019, at 5:22 PM, Tom Mercha <merch...@hotmail.com> wrote: >>> >>> Hi All >>> >>> As we know, a query goes through number of stages before it is executed. >>> One of these stages is query optimization (QO). >>> >>> There are various parameters to try and influence optimizer decisions >>> and costs. But I wanted to measure the effect of such a stage by turning >>> it off completely and I can't find such a parameter which explicitly >>> does that. Then I could execute a query to get the effect of "QO active >>> and "QO inactive" and compare. >>> >>> Obviously, I know well what the results would generally look like but I >>> am just interested in measuring the differences for various types of >>> queries. I am also aware that this is a simple comparison - there are >>> https://gitlab.com/camplab/jpsgcs interesting comparisons to perform with >>> QO tweaks, but right now I >>> am interested in something basic. >>> >>> So how would one shut down QO? Or at least, obtaining the guarantee of >>> generating the worst plan possible, ideally without touching many >>> parameters? >>> >>> Best, >>> Tom >> >> Drop all indices? >> > > Sorry, maybe my question wasn't clear enough. > > A query can be rewritten in various ways by applying rules and costs of > relational algebra operators, as well as their parallelisation. I am > talking about turning off this query optimization, so I am already > assuming that indexes aren't present.
Have you played with any of these settings? postgres=# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 10.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit (1 row) postgres=# select name, setting, unit,short_desc from pg_settings where name ~ 'para'; name | setting | unit | short_desc ---------------------------------+---------+------+---------------------------------------------------------------------------------------------------- force_parallel_mode | off | | Forces use of parallel query facilities. max_parallel_workers | 16 | | Sets the maximum number of parallel workers that can be active at one time. max_parallel_workers_per_gather | 8 | | Sets the maximum number of parallel processes per executor node. min_parallel_index_scan_size | 64 | 8kB | Sets the minimum amount of index data for a parallel scan. min_parallel_table_scan_size | 1024 | 8kB | Sets the minimum amount of table data for a parallel scan. parallel_setup_cost | 1000 | | Sets the planner's estimate of the cost of starting up worker processes for parallel query. parallel_tuple_cost | 0.1 | | Sets the planner's estimate of the cost of passing each tuple (row) from worker to master backend. ssl_dh_params_file | | | Location of the SSL DH parameters file. (8 rows)