启用和禁用GPORCA
启用和禁用GPORCA
默认情况下,Greenplum数据库使用GPORCA来替代传统查询规划器。服务器配置参数可以启用或者禁用GPORCA。
- 将optimizer_analyze_root_partition参数设置为on可启用对分区表根分区的统计信息收集。
- 设置optimizer参数为on(默认)或者off可以启用或者禁用GPORCA。可以在这些级别上设置该参数:
注意: 可以使用服务器配置参数optimizer_control禁用启用或者禁用GPORCA的能力。有关服务器配置参数的信息请见Greenplum数据库参考指南。
重要: 如果想要在启用GPORCA时执行分区表上的查询,必须用ANALYZE ROOTPARTITION命令收集分区表根分区上的统计信息。命令ANALYZE ROOTPARTITION在一个分区表的根分区上基于该表中的数据收集统计信息。在叶子分区上不收集统计信息,叶子分区数据仅会被抽样。如果为分区表指定了一个列名列表,这些列和根分区的统计信息会被收集。ANALYZE命令的信息请见Greenplum数据库参考指南。
还可以使用Greenplum数据库工具analyzedb来更新表统计信息。Greenplum数据库工具analyzedb可以并行地为多个表更新统计信息。该工具还可以检查表统计信息,只有统计信息不是最新或者不存在时才更新。有关analyzedb工具的信息,请见Greenplum数据库工具指南。
作为例行数据库维护的一部分,当对叶子分区数据做出显著的更改后应该在根分区上刷新统计信息。
设置optimizer_analyze_root_partition参数
当配置参数optimizer_analyze_root_partition被设置为on时,在分区表上运行ANALYZE将会收集根分区的统计信息。根分区统计信息是GPORCA所要求的。
- 作为gpadmin(Greenplum数据库管理员)登入到Greenplum数据库的Master主机。
-
设置服务器配置参数的值。下面这些Greenplum数据库gpconfig工具命令把这些参数的值设置为on:
$ gpconfig -c optimizer_analyze_root_partition -v on --masteronly
-
重启Greenplum数据库。下面这个Greenplum数据库gpstop工具命令重新载入Master和Segment的postgresql.conf文件而不关闭Greenplum数据库。
gpstop -u
为一个系统启用GPORCA
为Greenplum数据库系统设置服务器配置参数optimizer。
- 作为gpadmin(Greenplum数据库管理员)登入到Greenplum数据库的Master主机。
-
设置服务器配置参数的值。下面这些Greenplum数据库gpconfig工具命令把这些参数的值设置为on:
$ gpconfig -c optimizer -v on --masteronly
-
重启Greenplum数据库。下面这个Greenplum数据库gpstop工具命令重新载入Master和Segment的postgresql.conf文件而不关闭Greenplum数据库。
gpstop -u
为一个数据库启用GPORCA
用ALTER DATABASE命令为单个Greenplum数据库设置服务器配置参数optimizer。例如,这个命令为数据库test_db启用GPORCA。
> ALTER DATABASE test_db SET OPTIMIZER = ON ;
为一个会话或者查询启用GPORCA
可以使用SET命令为一个会话设置optimizer服务器配置参数。例如,在使用psql工具连接到Greenplum数据库之后,这个SET命令启用GPORCA:
> set optimizer = on ;
要为一个特定查询设置该参数,在运行该查询之前先运行SET命令。