Row-Store Execution to Vectorized Execution


This feature is available since openGauss 3.0.0.


Row-store table queries are converted into vectorized execution plans for execution, improving the execution performance of complex queries.


When processing row-store table queries, the executor has poor performance when executing complex queries that include many expressions or join operations, while the vectorized executor has excellent performance when executing complex queries. Therefore, query performance of complex queries can be effectively improved by converting row-store table execution into vectorized execution.


This feature adds a RowToVec operation to scan operators. After the data in the row-store table is converted into the vectorized format in the memory, the upper-layer operators can be converted into vectorized operators. In this way, the vectorized executor can be used for calculation. Scan operators that support this conversion include SeqScan, IndexOnlyscan, IndexScan, BitmapScan, FunctionScan, ValueScan and TidScan.




  • Vectorization is not supported in the following scenarios:

    • The targetList contains a function that returns set.
    • The targetList or qual contains expressions that do not support vectorization, such as array expressions, multi-subquery expressions, field expressions, and system catalog columns.
    • The following types do not support vectorization: POINTOID, LSEGOID, BOXOID, LINEOID, CIRCLEOID, POLYGONOID, PATHOID, and user-defined types.
  • MOTs do not support vectorization.


Vectorized executor

编组 3备份
    openGauss 2024-04-21 00:47:23