私の問題を説明しようとしています。我々は2つのデータベースを持っています:開発用のテストDBとプロダクションDBです。すべてのテーブル、ビュー、パッケージ、関数、トリガーなどは、両方のデータベースで同じです。 dbsの構造と内容は同じである必要がありますが、どういうわけかいくつかの部分では動作が異なります。多くのスキーマでOracleの機能が遅いです。
テストDB。
- SCHEMA1 /パッケージ1 /関数1
- SCHEMA2 /パッケージ2/Procedure1
のProd。 DB。
- SCHEMA1 /パッケージ1 /機能1
- SCHEMA2 /パッケージ2/Procedure1
- SCHEMA2 /パッケージ1 /機能1 < --emergency溶液ATM:全く同じコード、 だけスキーマ1からスキーマ2
In Test DB。 Schema2/Package2/Procedure1はSchema1/Package1/Function1を呼び出します。それはうまくいく(数秒)。
In Prod DB。 Schema2/Package2/Procedure1はSchema1/Package1/Function1を呼び出します。それは本当に遅く動作します。 (分)
Prodでは、DB Schema2/Package2/Procedure1がSchema2/Package1/Function1を呼び出します。それは同じ速さで動作します。
ここで、Prod DBの問題をチェックする必要がありますか?どの設定がiniファイルや他の場所で間違っていますか?
アイデア?
http://dba.stackexchange.com/で質問する方が良いかもしれません - これは特定のプログラミングに関する質問ではないようですので、ここでは解説しません。 – user3788685
これらの不思議なことは、おそらく通常はPL/SQL内部のSQL文の結果です。おそらく、遅いSQL文を見つけてそれをトラブルシューティングする必要があります。数回の実行後にSQL文を遅くまたは速く実行させることができる、カーディナリティフィードバックや適応カーソル共有などの多くの特殊な機能があります。 SQLの間隔を変更したり、再コンパイルすると、Oracleは文を再解析して、一部のユーザーに対して新しい計画を生成することがあります。 –