GPORCAオプティマイザーは優れたオプティマイザーですが、シナリオによっては、Postgresクエリオプティマイザーほど安定していません。
したがって、このオプティマイザをセッションレベルでオンまたはオフにする方法。
1.システムレベル
ユーザーgpadminとしてマスターにログインします
オンになっているか確認しますか?
~]$ gpconfig -s optimizer
Values on all segments are consistent
GUC : optimizer
Master value: off
Segment value: off
オンにする
~]$ gpconfig -c optimizer -v on
20210324:09:52:30:044766 gpconfig:gptest01:gpadmin-[INFO]:-completed successfully with parameters '-c optimizer -v on'
有効にする
~]$ gpstop -u
20210324:09:52:34:045084 gpstop:gptest01:gpadmin-[INFO]:-Starting gpstop with args: -u
20210324:09:52:34:045084 gpstop:gptest01:gpadmin-[INFO]:-Gathering information and validating the environment...
20210324:09:52:34:045084 gpstop:gptest01:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20210324:09:52:34:045084 gpstop:gptest01:gpadmin-[INFO]:-Obtaining Segment details from master...
20210324:09:52:35:045084 gpstop:gptest01:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 6.2.1 build commit:d90ac1a1b983b913b3950430d4d9e47ee8827fd4'
20210324:09:52:35:045084 gpstop:gptest01:gpadmin-[INFO]:-Signalling all postmaster processes to reload
第二に、図書館レベル
# ALTER DATABASE qmstst SET OPTIMIZER = ON ;
ALTER DATABASE
3、セッションレベル
オプティマイザをオンに設定します。セッションレベルを制御できます
更新を実行する前に開き、実行後に閉じます。