Autonomous AI Database on Dedicated Exadata InfrastructureのHigh Performanceの機能

この記事では、Autonomous AI Database on Dedicated Exadata Infrastructureの主なパフォーマンス・チューニング機能について説明します。

この項では、「お客様」という用語は、特定のタスクの実行を担当する組織内のユーザーを意味するために広く使用されています。場合によっては、これはアプリケーションDBAであり、その他の場合はアプリケーション開発者です。

Autonomous AI Databaseには、データベースのパフォーマンスを自動的に監視、分析および最適化する機能がいくつか含まれています。Oracle Autonomous AI DatabaseのSQLチューニングおよびパフォーマンス管理機能の完全なリストと、その使用方法の詳細は、Oracle Database 19c SQLチューニング・ガイドまたは『Oracle Database 26ai SQLチューニング・ガイド』を参照してください。

次に示すAutonomous AI Databaseの主なパフォーマンス・チューニング機能の幅広い分類を確認できます。

図hp_features.svgの説明

事前定義済データベース・サービス

アプリケーションからデータベースへの接続方法、およびデータベースへのSQLコールのコーディング方法によって、アプリケーションのトランザクション処理およびレポートの操作の全体的なパフォーマンスが決まります。

自律型AIデータベースに接続する場合、アプリケーションのデータベースとの対話のパフォーマンスは、接続先のデータベース・サービスによって異なります。Autonomous AI Databaseには、データベースへの接続時に使用するデータベース・サービスの複数のセットが用意されています。これらの接続サービスは、Autonomous AIデータベースの事前定義済データベース・サービス名の説明に従って、様々な種類のデータベース操作をサポートするように設計されています。

ヒント:事前定義済データベース・サービスの主な特性と、これらの特性に基づいて様々なデータベース・サービスのセットを比較する表を確認して、アプリケーションのパフォーマンス要件に適したデータベース・サービスを決定してください。

接続プール

Autonomous AI Databaseに接続する場合、接続プールを使用して、個々の接続を繰り返し作成および破棄するパフォーマンス・オーバーヘッドを削減できます。これは、アプリケーションのデータベースとの対話のパフォーマンスに大きな影響を与えるもう1つの要因です。

通常、継続的な可用性を提供するようにアプリケーションを設計または拡張する場合にのみ、接続プールの使用を検討します。ただし、ほぼすべてのトランザクション処理アプリケーションで、個々の接続ではなく接続プールを使用することはメリットになりえます。接続プールを使用すると、次のメリットがあります:

特殊用途の接続機能

Oracle Net Services (以前の呼称はSQL*Net)には、特定の接続シナリオにおけるパフォーマンスを向上させる様々な接続機能が用意されています。これらの機能は、『Oracle Database 19c Net Services管理者ガイド』または『Oracle Database 26ai Net Services管理者ガイド』で説明されています。

SQLパフォーマンス・チューニング機能

優れたアプリケーションを作成する第一歩は、SQLを適切に記述することです。Oracle Autonomous AI Databaseには、高パフォーマンス・アプリケーションを構築して、SQLおよびPL/SQLコードを検証するための多数の機能が用意されています。これらの機能の一部を次に示します。

アプリケーションを開発する際、(自律型AIデータベースに組み込まれている) Oracle Database ActionsとOracle SQL Developer (ユーザーが開発システムにインストールした無料アプリケーション)の両方で提供されるSQLワークシートを使用して、記述したSQLコードがこれらの機能にどのような影響を与えるかをすぐに学習し、コードを改善することができます。

SQLトレース

アプリケーション操作に予想より時間がかかる場合、解析、実行およびフェッチ・フェーズでそのSQL文に費やされた時間などの詳細とともに、この操作の一部として実行されたすべてのSQL文のトレースを取得すると、パフォーマンスの問題の原因を特定して解決するのに役立ちます。これを実現するには、Autonomous AI DatabaseでSQLトレースを使用できます。

Autonomous AI Databaseでは、SQLトレースはデフォルトで無効になっています。SQLトレース・データの収集を開始するには、これを有効にする必要があります。SQLトレースを有効化および使用する方法の詳細は、「Autonomous AIデータベースでのSQLトレースの使用」を参照してください。

オプティマイザ統計

Autonomous AI Databaseではオプティマイザ統計が自動的に収集されるため、このタスクを手動で実行する必要はなく、統計が常に最新であることを保証できます。自動統計収集はAutonomous AI Databaseで有効になっており、標準のメンテナンス・ウィンドウで実行されます。

ノート:メンテナンス・ウィンドウの時間と自動オプティマイザ統計収集の詳細は、『Oracle Database 19c管理者ガイド』または『Oracle Database 26ai管理者ガイド』を参照してください。オプティマイザ統計の詳細は、『Oracle Database 19c SQLチューニング・ガイド』または『Oracle Database 26ai SQLチューニング・ガイド』を参照してください。

オプティマイザ・ヒント

オプティマイザ・ヒントは、オプティマイザに命令を渡すSQL文内の特別なコメントです。オプティマイザは、なんらかの状況により妨害されていないかぎり、ヒントを使用して文の実行計画を選択します。

オプティマイザのAutonomous AI DatabaseのデフォルトおよびPARALLELヒントは、ワークロードによって異なります:

自動索引付け

自動索引付けによって、Autonomous AI Databaseの索引管理タスクが自動化されます。自動索引付けは、Autonomous AI Databaseではデフォルトで無効になっています。

手動で索引を作成するには、データ・モデル、アプリケーションおよびデータの配布に関する詳しい知識が必要です。かつては、DBAがどの索引を作成するかの選択を担当していましたが、状況の変化に応じて、DBAが選択肢の改訂や索引のメンテナンスを行わない場合もありました。その結果、改善の機会が失われ、不要な索引の使用がパフォーマンスへの負担につながっていました。

Autonomous AI Databaseの自動索引付け機能では、アプリケーション・ワークロードが監視され、索引の作成とメンテナンスが自動的に行われます。

ヒント:この手順を試してみる場合は、開発者およびデータ・ユーザー専用Oracle Autonomous AI Databaseワークショップラボ14: 自動索引付けを実行します。

自動索引作成の有効化

自動索引付けの無効化

自動索引付けを無効にするには、DBMS_AUTO_INDEX.CONFIGUREプロシージャを使用します。たとえば、次の文を実行すると、データベースの自動索引付けが無効になり、新しい自動索引は作成されません。ただし、既存の自動索引は有効のまま変わりません。

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

詳細は、『Oracle Database 19c管理者ガイド』自動索引の管理に関する項または『Oracle Database 26ai管理者ガイド』を参照してください。

高速収集

高速収集により、高頻度の単一行データ挿入の処理をデータベースに最適化します。高速収集では、ディスクに書き込む前に挿入をバッファリングするためにラージ・プールが使用され、データ挿入パフォーマンスが向上します。

高速収集の目的は、集計に重要な値が含まれている多くの情報データを生成するが必ずしも完全なACID保証が必要なわけでないアプリケーションをサポートすることにあります。Internet of Things (IoT)の多くのアプリケーションでは、センサー・データ、スマート・メーター・データ、さらにはトラフィック・カメラなど、迅速な「ファイア・アンド・忘れる」タイプのワークロードがあります。これらのアプリケーションでは、データは、収集され、その後の分析のために大量にデータベースに書き込まれる場合があります。

高速収集は、通常のOracle AI Databaseトランザクション処理とはまったく異なります。この処理では、データはログ記録され、データベースに一回書き込まれると(すなわち、コミットすると)失われることがありません。最大限の収集処理能力を実現するために、通常のOracleトランザクション・メカニズムは無視されます。すべてのデータが実際にデータベースに書き込まれているかどうかは、そのアプリケーションで確認する必要があります。データがデータベースに書き込まれたかどうかを確認するために呼び出すことができる、特別なAPIが追加されました。

高速収集の概要およびこの機能の使用に関連するステップについては、『Oracle Database 19cパフォーマンス・チューニング・ガイド』または『Oracle Database 26aiパフォーマンス・チューニング・ガイド』高速収集の使用に関する項を参照してください。

Autonomous AI Databaseで高速収集を使用するには、次のことが必要です。

Oracle Schedulerでの事前定義済ジョブ・クラス

Autonomous AI Databaseには、Oracle Schedulerで使用する事前定義済のjob_class値が含まれています。これらのジョブ・クラスを使用すると、共通の特性および動作を共有するジョブをより大きいエンティティにグループ化できるため、各クラスに割り当てられるリソースを制御することで、これらのクラス間で優先順位を付けることができます。

事前定義済ジョブ・クラスを使用すると、重要なジョブが優先され、ジョブの完了に必要なリソースを確保できます。たとえば、データ・ウェアハウスのロードに重要なプロジェクトがある場合は、すべてのデータ・ウェアハウスのジョブを1つのクラスにまとめて、使用可能なリソースの割当て比率を高めるために、その他のジョブより優先して実行できます。また、ジョブ・クラス内のジョブに相対的な優先度を割り当てることもできます。

事前定義済のjob_class値(TPURGENTTPHIGHMEDIUMおよびLOW)は、対応するコンシューマ・グループにマップされます。これらのジョブ・クラスでは、DBMS_SCHEDULER.CREATE_JOBを使用して、ジョブを実行するコンシューマ・グループを指定できます。

DBMS_SCHEDULER.CREATE_JOBプロシージャは、Autonomous AI Databaseのjob_typeパラメータのPLSQL_BLOCKおよびSTORED_PROCEDUREジョブ・タイプをサポートします。

たとえば、次を使用して、HIGHコンシューマ・グループで実行する単一の通常ジョブを作成します:

BEGIN
   DBMS_SCHEDULER.CREATE_JOB (
     job_name => 'update_sales',
     job_type => 'STORED_PROCEDURE',
     job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY',
     start_date => '28-APR-19 07.00.00 PM Australia/Sydney',
     repeat_interval => 'FREQ=DAILY;INTERVAL=2',
     end_date => '20-NOV-19 07.00.00 PM Australia/Sydney',
     auto_drop => FALSE,
     job_class => 'HIGH',
     comments => 'My new job');
END;
/

Oracle Schedulerのノート:

Oracle SchedulerおよびDBMS_SCHEDULER.CREATE_JOBの詳細は、「Oracle Database 19c」の「Oracle Schedulerを使用したジョブのスケジュール」または「Oracle Database 26ai」を参照してください。

ジョブ属性の詳細は、Oracle Database 19cSET_ATTRIBUTEプロシージャまたはOracle Database 26aiを参照してください。

パフォーマンスの監視およびチューニング・ツール

ワークロードの変化、アプリケーション・サーバーやデータベース・サーバーでのリソース制限、または単になるネットワークのボトルネックなどのいくつかの状況では、アプリケーションのパフォーマンス問題が発生する可能性があります。Oracleには、パフォーマンスのモニター、パフォーマンス問題の診断、および問題解決のためのアプリケーションやデータベースのチューニングに役立つ様々なツールが用意されています。その一部を次に示します。

ツール Details
パフォーマンス・ハブ Oracle Cloud Infrastructure (OCI)コンソールで使用可能な、すぐに使用可能な機能豊富なツール。パフォーマンス・ハブには、Oracle Database ActionsおよびOracle Enterprise Managerが組み込まれています。

詳細は、パフォーマンス・ハブを使用したデータベース・パフォーマンスのモニターを参照してください。
Autonomous AI Databaseメトリック Autonomous AI Database Metricsは、CPUおよびストレージの使用率、データベースのログインおよび接続試行の成功数、データベース操作、SQL問合せ、トランザクションなど、有用な定量データを測定するのに役立ちます。メトリック・データを使用して、Autonomous AI Databaseリソースの問題を診断およびトラブルシューティングできます。

前提条件、使用状況、専用Exadataインフラストラクチャ上のAutonomous AI Databaseで使用可能なメトリックのリストなどの詳細は、Autonomous AIデータベース・メトリックを使用したデータベースのモニターを参照してください。
自動ワークロード・リポジトリ(AWR)および自動データベース診断モニター(ADDM) 他にも、自動ワークロード・リポジトリ(AWR)と自動データベース診断モニター(ADDM)の2つのツールがよく使用されます。

AWRには、Oracleデータベースのパフォーマンスに関連する統計が格納され、ADDMは、AWRデータの定期的な分析、パフォーマンス問題の根本原因を特定し、問題を修正するための推奨事項を提供し、問題のないシステム領域を特定する診断ツールです。AWRは履歴パフォーマンス・データのリポジトリであるため、ADDMはイベント後のパフォーマンスの問題を分析でき、多くの場合、問題の再現にかかる時間とリソースを節約できます。

これらのツールの使用方法、およびデータベース・パフォーマンスの監視とチューニングの詳細は、『Oracle Database 19cパフォーマンス・チューニング・ガイド』または『Oracle Database 26aiパフォーマンス・チューニング・ガイド』を参照してください。

AWRおよびADDMは、パフォーマンス・ハブからも入手できます。詳細は、パフォーマンス・ハブを使用したデータベース・パフォーマンスのモニターを参照してください。

データベースのパフォーマンス監視およびチューニングの概要は、『Oracle Database 19c 2日でパフォーマンス・チューニング・ガイド』または『Oracle Database 26ai 2日でパフォーマンス・チューニング・ガイド』を参照してください。