GPORCA的限制
GPORCA的限制
在Greenplum数据库中使用默认的GPORCA优化器时有一些限制。GPORCA和传统的查询优化器当前并存于Greenplum数据库中,因为GPORCA不支持所有的Greenplum数据库特性。
这一节描述这些限制。
不支持的SQL查询特性
下面这些是GPORCA被启用时(默认启用)不支持的特性:
- 索引表达式(在基于表的一个或者更多列的表达式上定义的索引)
- PERCENTILE窗口函数
- 外部参数
- 这些类型的分区表:
- 非统一分区表。
- 被修改为用一个外部表作为叶子子分区的分区表。
- SortMergeJoin (SMJ)
- 有序聚集
- 这些分析扩展:
- CUBE
- 多分组集
- 这些标量操作符:
- ROW
- ROWCOMPARE
- FIELDSELECT
- 多个DISTINCT限制的聚集函数
- 逆分布函数
性能衰退
启用GPORCA时,已知下列特性会发生性能衰退:
- 短期运行的查询 - 对于GPORCA,短期运行的查询可能会因为GPORCA对于判断最优查询执行计划的增强而遇到额外的负担。
- ANALYZE - 对于GPORCA,ANALYZE命令为分区表生成根分区的统计信息。对于传统优化器,这些统计信息不会被生成。
- DML操作 - 对于GPORCA,DML增强包括在分区和分布键上的更新支持,这可能会产生额外的负担。
还有,当GPORCA用以前版本特性的增强功能执行SQL语句时,这些增强功能可能会导致额外的时间要求。