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语句时,这些增强功能可能会导致额外的时间要求。