启用和禁用GPORCA

    注意: 可以使用服务器配置参数optimizer_control禁用启用或者禁用GPORCA的能力。有关服务器配置参数的信息请见Greenplum数据库参考指南。

    重要: 如果想要在启用GPORCA时执行分区表上的查询,必须用ANALYZE ROOTPARTITION命令收集分区表根分区上的统计信息。命令ANALYZE ROOTPARTITION在一个分区表的根分区上基于该表中的数据收集统计信息。在叶子分区上不收集统计信息,叶子分区数据仅会被抽样。如果为分区表指定了一个列名列表,这些列和根分区的统计信息会被收集。ANALYZE命令的信息请见Greenplum数据库参考指南。

    还可以使用Greenplum数据库工具analyzedb来更新表统计信息。Greenplum数据库工具analyzedb可以并行地为多个表更新统计信息。该工具还可以检查表统计信息,只有统计信息不是最新或者不存在时才更新。有关analyzedb工具的信息,请见Greenplum数据库工具指南。

    作为例行数据库维护的一部分,当对叶子分区数据做出显著的更改后应该在根分区上刷新统计信息。

    当配置参数optimizer_analyze_root_partition被设置为on时,在分区表上运行ANALYZE将会收集根分区的统计信息。根分区统计信息是GPORCA所要求的。

    1. 作为gpadmin(Greenplum数据库管理员)登入到Greenplum数据库的Master主机。
    2. 设置服务器配置参数的值。下面这些Greenplum数据库gpconfig工具命令把这些参数的值设置为on:

    为Greenplum数据库系统设置服务器配置参数optimizer。

    1. 作为gpadmin(Greenplum数据库管理员)登入到Greenplum数据库的Master主机。
    2. 重启Greenplum数据库。下面这个Greenplum数据库gpstop工具命令重新载入Master和Segment的postgresql.conf文件而不关闭Greenplum数据库。

    用ALTER DATABASE命令为单个Greenplum数据库设置服务器配置参数optimizer。例如,这个命令为数据库test_db启用GPORCA。

    可以使用SET命令为一个会话设置optimizer服务器配置参数。例如,在使用psql工具连接到Greenplum数据库之后,这个SET命令启用GPORCA:

      要为一个特定查询设置该参数,在运行该查询之前先运行SET命令。