Oracle DBクエリのパフォーマンス調整のベストプラクティスを推奨できる人はいますか?業界標準となる無料または有料のアプリケーションはありますか?
3 に答える
業界標準は「場合による」です。
Enterprise Edition のデータベースと Performance and Tuning Pack を使用している場合、Oracle では、特定の SQL 文のチューニングに役立つ SQL Tuning Advisor などの多くのツールを提供しています。AWR (Automatic Workload Repository) テーブルと ASH (Active Session History) テーブル、およびこれらのテーブルをレポートして操作するためのさまざまなユーティリティを提供し、チューニングが必要なステートメントやシステムの問題を特定するのに役立ちます。メモリ構成の調整に役立つアドバイザがあります。オラクルが提供するさまざまなツールの多くに完全に特化した多くの本があります。
しかし、一般的に、知識のある人間を必要とするものもあります。自動化されたツールは、追加のインデックスがクエリに役立つ可能性があることを示唆する場合があります。人間はクエリを見て、基になるデータを理解し、多数の自己結合を実行するのではなく、分析関数を使用することで、クエリ自体を書き直してパフォーマンスを大幅に向上できることに気付くことができます。人間は、自動化されたツールで問題が発生する可能性が高い場所と、バインド変数の不足などのアプリケーションの問題に対処する方が適切な場所を認識できます。
これに関するOracleドキュメントはたくさんあります。
SQL チューニングの概要を次に示します。
Query Optimizerの機能を理解する必要があります。
パフォーマンス チューニングを読んでください。
高レベルでは、インデックスを追加し、さまざまな種類の結合を切り替えることから始めます。しかし、その背後にはもっと奇妙なsh * tがあります。
Oracle には、Explain Plan というツールが付属しています。これにより、Oracleが特定のクエリで何をしようとしているのかについての洞察が得られます。
EXPLAIN PLAN に関する情報は、ORAFAQ: Understanding Explain Planにあります。
EXPLAIN PLAN の解釈には、データベース管理の技術に関する多少の経験が必要であることに注意してください。どのクエリが観察を必要とするクエリであるかを見つけることさえ、ちょっとした芸術形式です。