永続性と Oracle データベースに Toplink を使用するアプリケーションがあります。最近、特に db/query レベルでパフォーマンスの問題が発生しました。私は一連のトリガーとストアド プロシージャに大きなロジックを持っていますが、これは不適切に記述されており、変更トリガーの問題に対する回避策があります。アプリケーションは数年前から実稼働しており、新しいリリースやその他の優先度の高い承認を取得する官僚機構を考慮すると、このコードを書き直すことが最後の解決策です。だから私は迅速な修正を探しています。
パフォーマンスを改善する 1 つの解決策は、バインド変数を使用することです。私の問題は、トップリンクの session.xml に bind-all-variables と cache-all-statements を追加した後、特定の UI で、くだらないコードをトリガーし、この構成を変更する前に問題なく機能していたときに、次のエラーが発生することです。
ORA-00036: 再帰SQLレベルの最大数(50)を超えました
私の質問は、bind-variable 設定を追加した後にのみこのエラーが表示されるのはなぜですか? くだらないコードを変更せずに、バインド変数で動作させるにはどうすればよいですか?