私は最近、Oracle db を使用して .net で新しい開発プロジェクトを開始しました。以前は oracle を使用したことがありませんでしたが、sqlprofiler のような oracle 用のツールもあるのだろうかと思いました。
6 に答える
Oracleは、ツールやツールなどを含むSQLDeveloperを提供しています。EXPLAIN
AUTOTRACE
PS TOADは、余裕があれば素晴らしいです(少なくとも、私がそれを買うことができたのはこれが最後でした)。
Oracleでアプリケーションのプロファイルを作成する最良の方法は、SQLトレースです。SQLトレースは、アプリケーションが実行したステートメント、それらの経過時間、待機時間、および待機時間の長さを示します。私が提供したリンクは、SQLトレースについて読むための良いスタートです。
プロファイリングに関連し、一般的なパフォーマンス チューニング- Automatic Performance Statisticsなど、もう少し一般的です。使用したくない場合でも、システム パフォーマンスに関連する重要なビューとイベントを把握できます。
ほとんどのネイティブ トレース機能の課題は、それらが課すパフォーマンス負荷であるため、大量のミッション クリティカルな運用システムの 24 時間 365 日のクエリ監視にはお勧めできません。
市場には、プロファイル/トレース機能も提供するサードパーティ ツールがあります。これらのツールの中には、システムにパフォーマンスの負担をかけるものもあるため、多くの場合、dbms のポーリングを介して定期的なスナップショットのみを取得します。他のツールは、データベース クエリを非介入的に監視し (システムにゼロまたは最小限の負荷を課します)、「常時」ベースで使用できます。
追加のパフォーマンス負荷が許容できるかどうかを判断する必要があります。その場合は、ネイティブ機能または安価なサードパーティ製ツールを使用してください。トランザクションの多いミッション クリティカルな運用システムを使用している場合は、非侵入型ツールを検討してください。
完全な開示: 私は、そのようなツールを提供するベンダーの 1 つで働いています。ベンダーは、さまざまなメカニズムを使用して、パフォーマンスの監視が邪魔にならないようにしています。私たちのものは、データベースへの接続を開いたり、ポーリングしたりしません。代わりに、ネットワーク トラフィックをリッスンしてクエリを受動的にキャプチャし、関連するパフォーマンス メトリック (サーバーの反応時間、クエリの応答時間、往復時間など) を計算します。私たちは、高トランザクション/大量生産データベースの監視を専門としています。どこかで見たブロガーの言葉を引用すると、「走行距離計で車の速度を落とすことはできません」。私たちについての詳細: http://www.exact-solutions.com/products/iwatch
拡張 SQL トレースと TKPROF に加えて、Oracle 提供のパッケージ DBMS_PROFILER を使用して PL/SQL コードをプロファイリングできます。
また、エンタープライズ マネージャも参照してください。実行中のコードを動的に調べて調整するための便利なツールがたくさんあります。DBA が設定する必要があります。