2017-07-03 3 views
0

私の問題を説明しようとしています。我々は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ファイルや他の場所で間違っていますか?

アイデア?

+0

http://dba.stackexchange.com/で質問する方が良いかもしれません - これは特定のプログラミングに関する質問ではないようですので、ここでは解説しません。 – user3788685

+0

これらの不思議なことは、おそらく通常はPL/SQL内部のSQL文の結果です。おそらく、遅いSQL文を見つけてそれをトラブルシューティングする必要があります。数回の実行後にSQL文を遅くまたは速く実行させることができる、カーディナリティフィードバックや適応カーソル共有などの多くの特殊な機能があります。 SQLの間隔を変更したり、再コンパイルすると、Oracleは文を再解析して、一部のユーザーに対して新しい計画を生成することがあります。 –

答えて

0

ここで、トップダウンアプローチを試してみましょう。 Test DBとProd DBは異なるサーバーにありますか?もしそうなら、あるサーバが他のサーバよりも負荷が重くなる可能性はありますか?

第2に、データベース・レベルでは、Oracleはすべての原因の根本原因を突き止めるのに役立つようにインストルメントされています(詳細は、「システム・リソースの概要」を参照してください)。パフォーマンスの問題。ステップ1、テストとプロードで同じ実行計画を持っていますか?実行計画が異なる場合(データ量とデータの分布などに基づいて)、が巨大なのパフォーマンスになる可能性があります。

実行計画が異なる場合は、同じ実行計画であっても、データ量と配布の違いによってprodのパフォーマンスが低下する可能性があるかどうかを検討する必要があります。

最後に、Tanel Poderのsnapper.sql(http://blog.tanelpoder.com/files/scripts/snapper.sql)のようなツールを使用して、時間の正確な場所を確認できます。これは、あなたのperformacne問題の根本的な原因につながる可能性があります。

あなたの質問の性質は本当に特定の答えがないようなものです。私はちょうどあなたが正しい方向を指し示すようにしようとしました、そしてあなたに考えるべきいくつかのポイントを与えます。

希望に役立ちます。

関連する問題