提供開始 SQL Tuning Advisor for Oracle Cloud Databases (2021/11/30)
提供開始 SQL Tuning Advisor for Oracle Cloud Databases (2021/11/30)
投稿者:Sriram Vrinda
このブログでは、読者がOracle Cloud Database Management service、Oracle Database、Structured Query Language (SQL)の使用に精通していることを前提としています。
このたび、Oracle Cloud Infrastructure (OCI) Database Management serviceで、Oracle CloudおよびオンプレミスのOracle Database向けにSQL Tuning Advisorが提供されることになりました。この機能により、パフォーマンス・ハブのアクティブ・セッション・ヒストリー(ASH)アナリティクス機能で見られるように、上位のSQLをチューニングすることができます。
Oracle Databaseのパフォーマンスを最大化するためのSQLチューニング
チューニングは通常、パフォーマンスの問題を解決することを意味します。しかし、チューニングは、分析、設計、コーディング、生産、保守の各段階を経て、アプリケーションのライフサイクルの一部となるべきです。
データベースシステムのパフォーマンスチューニングの重要な側面は、SQL文のチューニングです。SQLのチューニングには3つの基本ステップがあります。
- システムの過去のSQL実行履歴を確認して、アプリケーションの作業負荷やシステムリソースの大きな割合を占める高負荷または上位のSQL文を特定
- クエリ・オプティマイザが生成した実行計画が適切に実行されていることを確認
- パフォーマンスの低いSQL文に対して、より良い実行計画を生成するための修正措置を実施
図1:SQL Tuning Advisorの概要
Oracle Database の自動 SQL チューニングと Oracle クエリオプティマイザのモード
通常モードでは、厳しい時間制約の中で合理的な実行計画を含む
通常モードでは、オプティマイザーがSQLをコンパイルし、実行プランを生成します。オプティマイザーの通常モードでは、大多数のSQL文に対して合理的な実行プランが生成されます。通常モードでは、オプティマイザは非常に厳しい時間制約の中で動作します。通常は数分の1秒ですが、その間に良い実行プランを見つけなければなりません。
チューニングモードでは、優れた実行計画を作成するための追加の分析チェックが行われます。
チューニングモードでは、オプティマイザが追加の分析を行い、通常モードで作成した実行プランをさらに改善できるかどうかをチェックします。クエリ・オプティマイザの出力は、実行プランではなく、一連のアクションと、その理由、および大幅に優れたプランを作成するために期待される利益です。チューニングモードで呼び出された場合、オプティマイザは「自動チューニングオプティマイザ」と呼ばれます。自動チューニングオプティマイザが行うチューニングを「自動SQLチューニング」と呼びます。
Oracle SQL Tuning Advisorは、チューニングタスクの範囲と期間を管理するためのオプションを提供
チューニングタスクの範囲は、限定的または包括的に設定できます。
限定オプションを選択した場合、SQL Tuning Advisor は統計チェック、アクセスパス分析、および SQL 構造分析に基づいて推奨事項を作成します。SQL プロファイルの推奨事項は生成されません。
包括的オプションを選択した場合、SQL Tuning Advisorは、限定的な範囲で実行するすべての分析に加えて、SQLプロファイリングを実行します。包括的オプションでは、チューニングタスクの時間制限を指定することもできますが、デフォルトでは30分となっています。
図 2: Performance Hub から SQL Tuning Advisor を実行する
Oracle SQL Tuning Advisorのアドバイス出力は改善のための推奨事項
SQLステートメントを分析した後、SQL Tuning Advisorは推奨事項を出力します。具体的には、SQL Tuning Advisorは以下のような出力を行います。
- 実行計画の最適化に関するアドバイス
- 提案された最適化の論理的根拠
- パフォーマンスへの影響の予測
- アドバイスを実行するためのSQL文
図3:SQLチューニングアドバイザの推奨事項
高負荷のSQL文を特定してチューニングするには時間がかかり、専門家でも困難です。SQL Tuning Advisor は、オプティマイザーを使用して SQL のチューニングを行います。
本番のデータベースで最適なパフォーマンスを発揮しないSQL文が発生した場合、開発者は本番のデータベースで直接調査やチューニングをしたくない場合があります。DBAは、問題のあるSQL文をテストデータベースに移し、開発者が安全に分析・チューニングできるようにします。
SQL Tuning Advisorは、Oracle Cloud Infrastructure Database Managementサービスで使用することができます(追加料金がかかります)。この機能は、コンソールCLIおよびREST APIからアクセス可能で、すでにすべての商用リージョンで提供されており、政府系リージョンでも近日中に提供される予定です。
Oracle Cloud Infrastructureのトライアルアカウントにサインアップして、この機能とその使用方法の詳細については、ドキュメントを確認し、実際に試してみてください。
参考情報
コメント
コメントを投稿