プライマリデータベースと(論理)スタンバイデータベースがあります。スキーマ「APP」が同期されます。これで、ユーザーは、スタンバイデータベースのこの「APP」スキーマの一部のテーブルに対してクエリを実行すると、パフォーマンスの問題が発生します。プライマリでは、テーブル(DBMS_STATS.GATHER_TABLE_STATS)の統計を収集した後、同じクエリが適切に実行されました。
スタンバイ側の統計を更新する方法は? DBMS_STATS.GATHER_TABLE_STATSは ORA-16224 を提供します。
と
SELECT table_name,last_analyzed FROM dba_tables WHERE table_name IN ('TAB1','TAB2');
スタンバイ統計が少し古すぎることがはっきりとわかります;)
SELECT guard_status FROM v$database;
GUARD_STATUS
------------
STANDBY
ガード機能を一時的に非アクティブ化しない限り、ロジカルスタンバイデータベースでDMLを実行することはできません。あなたの問題を克服するためにあなたは行うことができます:
SQL> ALTER DATABASE GUARD NONE;
SQL> SELECT GUARD_STATUS FROM V$DATABASE;
GUARD_STATUS
--------------------
NONE
次に、dbms_statsを実行します。