Skip to content

colexec: remove vectorize_row_count_thresold session variable #53893

@asubiotto

Description

@asubiotto

By default, the vectorized execution engine is only used to execute a query if the query's row count estimate is larger than the vectorize_row_count_threshold. This was because there was a non-negligible allocation overhead.

Since dynamic batches were introduced, the allocations were minimized and the vectorized execution engine demonstrates a 10% speedup on a point lookup workload (kv95), which is a worst-case scenario for the engine.

We should:

  1. Remove the vectorize_row_count_threshold since it is not useful anymore.
  2. Create an optimizer cost model to take into account the fact that vectorized execution will now be unconditionally used if set (this will be the default). This is a lot easier than what we wanted to do previously, which was make the optimizer decide whether vectorized execution would be beneficial.

Metadata

Metadata

Assignees

Labels

A-sql-executionRelating to SQL execution.C-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions