文章目錄
- openGauss學習筆記-226 openGauss性能調優-系統調優-配置LLVM-LLVM適用場景與限制
- 226.1 適用場景
- 226.2 非適用場景
openGauss學習筆記-226 openGauss性能調優-系統調優-配置LLVM-LLVM適用場景與限制
226.1 適用場景
-
支持LLVM的表達式
查詢語句中存在以下的表達式支持LLVM優化:
- Case…when… 表達式
- In表達式
- Bool表達式(And/Or/Not)
- BooleanTest表達式(IS_NOT_KNOWN/IS_UNKNOWN/IS_TRUE/IS_NOT_TRUE/IS_FALSE/IS_NOT_FALSE)
- NullTest表達式(IS_NOT_NULL/IS_NULL)
- Operator表達式
- Function表達式
- Nullif表達式
表達式計算支持的數據類型包括bool、tinyint、smallint、int、bigint、float4、float8、numeric、date、time、timetz、timestamp、timestamptz、interval、bpchar、varchar、text、oid。
僅當表達式出現在向量化執行引擎中Scan節點的filter,Hash Join節點中的complicate hash condition、hash join filter、hash join target,Nested Loop節點中的filter、join filter,Merge Join節點的merge join filter、merge join target,Group節點中的filter表達式時,才會考慮是否使用LLVM動態編譯優化。
-
支持LLVM的算子:
- Join:HashJoin
- Agg:HashAgg
- Sort
其中HashJoin算子僅支持Hash Inner Join,對應的hash cond僅支持int4、bigint、bpchar類型的比較;HashAgg算子僅支持針對bigint、numeric類型的sum及avg操作,且group by語句僅支持int4、bigint、bpchar、text、varchar、timestamp類型操作,同時支持count(*)聚集操作。Sort算子僅支持對int4、bigint、numeric、bpchar、text、varchar數據類型的比較操作。除此之外,無法使用LLVM動態編譯優化,具體可通過explain performance工具進行顯示。
226.2 非適用場景
-
不支持小數據量表使用LLVM動態編譯優化。
-
不支持生成非向量化執行路徑的查詢作業。
👍 點贊,你的認可是我創作的動力!
?? 收藏,你的青睞是我努力的方向!
?? 評論,你的意見是我進步的財富!