この章では、パフォーマンスを考慮してデータベースを構成するための、オ ラクル社の方法論の概要を説明しています。パフォーマンスの修正はOracle
Databaseに対して継続的に実行できますが、データベースの初期構成を適切に行うことにより、多
大な利益を得ることができます。
この章の構成は、次のとおりです。
初期インスタンス構成のパフォーマンスの考慮事項 最適なパフォーマンスを得る表の作成とメンテナンス 共有サーバーのパフォーマンスの考慮事項
事前起動プロセスによるクライアント接続のパフォーマンスの向上
初期インスタンス構成のパフォーマンスの考慮事項
データベースに重要なパフォーマンス面の影響を与えるデータベース・インスタンスの初期構成 オプションは次のとおりです。
初期化パラメータ UNDO領域
REDOログ・ファイル 表領域
ノート: Database Configuration Assistant (DBCA)を使用してデータベースを作成する場 合、提供されるシード・データベースには必要な基本的初期化パラメータが組み込まれ ており、このドキュメントで説明するパフォーマンス推奨事項を満たしています。
関連項目:
Database Configuration Assistantを使用したデータベースの作成方法の詳細は、『Oracle Database管理者ガイド』を参照してください。
SQL文を使用したデータベースの作成方法の詳細は、『Oracle Database管理者ガイド』を参 照してください。
初期化パラメータ
実行中のOracleデータベース・インスタンスは、初期化パラメータ・ファイルで設定される初期化
パラメータを使用して構成されます。これらのパラメータは、パフォーマンスへの影響を含め、
実行中のインスタンスの動作に影響を与えます。一般的に、関連する設定がほとんどない非常に 単純な初期化ファイルで、ほとんどの状況に対応できます。次の表に示す少数のパラメータを除 き、初期化ファイルはパフォーマンス・チューニングを行う最初の場所ではありません。
次の表に、最小初期化ファイルに必要なパラメータを示します。これらのパラメータは必須です が、パフォーマンスに影響を与えません。
表4-1 パフォーマンスに影響を与えない必要な初期化パラメータ
パラメータ 説明
DB_NAME データベースの名前。これは、環境変数ORACLE_SIDに一致する必要が
あります。
DB_DOMAIN インターネット・ドット表記法による、データベースの場所。
OPEN_CURSORS 1セッション当たりのカーソル(アクティブなSQL文)の最大数に対する制 限。設定はアプリケーションにより異なり、推奨値は500です。
CONTROL_FILES 異なるディスク・ドライブ上に少なくとも2つのファイルを含めるように
設定して、制御ファイルの消失による障害を防ぎます。
DB_FILES データベースに割り当てることのできるファイルの最大数に設定しま
す。
次の表に、パフォーマンスの考慮事項として設定する、最も重要なパラメータを示します。
表4-2 パフォーマンスに影響を与える重要な初期化パラメータ
パラメータ 説明
COMPATIBLE 互換性を維持しておくOracleデータベースのリリースを指定します。こ
のパラメータを使用すると、新しい機能を自分の環境でテストせずに、
ただちに本番システムで新しいリリースで改善された機能を利用できる
ようになります。アプリケーションが の特定のリリース 用に設計されていて、実際にはそれより後のリリースをインストールす る場合は、このパラメータをアプリケーション設計時のリリースに設定 してください。
DB_BLOCK_SIZE データベース・ファイルに格納され、SGAにキャッシュされるOracleデ ータベース・ブロックのサイズを設定します。値の範囲はオペレーティ ング・システムにより異なりますが、一般的にトランザクション処理シ ステムの場合は8192で、データベース・ウェアハウス・システムの場合 はさらに大きい値となります。
SGA_TARGET すべてのSGAコンポーネントのサイズ合計を指定しま
す。SGA_TARGETが指定されている場合、バッファ・キャッシ
ュ(DB_CACHE_SIZE)、Javaプール(JAVA_POOL_SIZE)、ラージ・プー ル(LARGE_POOL_SIZE)および共有プール(SHARED_POOL_SIZE)のメモ リー・プールは、自動的にサイズ設定されます。
PGA_AGGREGATE_TARGET インスタンスに添付されたすべてのサーバー・プロセスに利用できるタ ーゲット集計PGAメモリーを指定します。
PROCESSES そのインスタンスで起動できるプロセスの最大数を設定します。このパ
ラメータは、他のパラメータ値の多くがこのパラメータから導出される ため、設定する最も重要なプライマリ・パラメータとなります。
SESSIONS これは、デフォルトでPROCESSESの値から設定されます。ただし、共
有サーバーを使用する場合は、導出された値では不十分である可能性が あります。
UNDO_MANAGEMENT データベースで使用するUNDO領域管理モードを指定します。デフォル
トはAUTOです。指定しない場合、AUTOが使用されます。
UNDO_TABLESPACE インスタンス起動時に使用されるUNDO表領域を指定します。
関連項目:
これらの初期化パラメータの詳細は、次のガイドを参照してください。
『Oracle Database管理者ガイド』
Oracle Databaseリファレンス
UNDO 領域
データベースは、読取り一貫性、リカバリおよびロールバック文で使用するデータを格納するた めに、UNDO領域を使用します。このデータは1つ以上のUNDO表領域に格納されます。Database Configuration Assistant(DBCA)を使用してデータベースを作成すると、UNDO表領域が自動的に作 成されます。UNDO表領域を手動で作成するには、CREATE DATABASE文にUNDOTABLESPACE句 を追加します。
UNDOデータを自動的に管理するため、Oracle Databaseでは、UNDOセグメントを透過的に作成お
Oracle Database
よび管理する自動UNDO管理を使用します。自動UNDO管理を有効にするに
は、UNDO_MANAGEMENT初期化パラメータをAUTO(デフォルト設定)に設定します。指定しない場 合、UNDO_MANAGEMENT初期化パラメータでは、AUTO設定が使用されます。自動UNDO管理の使 用をお薦めするのは、データベース管理が大幅に簡素化され、UNDO(ロールバック)セグメントを 手動でチューニングする必要がないためです。ロールバック・セグメントを使用する手
動UNDO管理は、下位互換性のためにサポートされています。
V$UNDOSTATビューには、UNDO領域を監視およびチューニングするための統計が含まれていま す。このビューを使用して、現行のワークロードに必要なUNDO領域の大きさをより的確に見積 ることができます。この情報を使用して、UNDO使用量を簡単にチューニングすることもできま す。V$ROLLSTATビューには、UNDO表領域内のUNDOセグメントの動作に関する情報が含まれて います。
関連項目:
UNDO管理アドバイザの詳細は、『Oracle Database 2日でデータベース管理者』と、Oracle Enterprise Manager Cloud Control (Cloud Control)のオンライン・ヘルプを参照してください 自動UNDO管理を使用したUNDO領域の管理の詳細は、『Oracle Database管理者ガイド』を 参照してください。
V$ROLLSTATビューの詳細は、Oracle Databaseリファレンスを参照してください。
V$UNDOSTATビューの詳細は、Oracle Databaseリファレンスを参照してください。
REDO ログ・ファイル
REDOログ・ファイルのサイズはパフォーマンスに影響を与えます。これは、データベースのライ ター・プロセスおよびアーカイバ・プロセスの動作がREDOログのサイズによって変わるためで す。一般に、REDOログ・ファイルが大きければ、パフォーマンスは向上します。ログ・ファイル のサイズが小さいと、チェックポイント・アクティビティが増加し、パフォーマンスが低下しま す。
REDOログ・ファイルのサイズはLGWRのパフォーマンスに影響を与えませんが、DBWRおよびチ ェックポイントの動作に影響を与える可能性があります。 チェックポイントの頻度には、ログ・
ファイルのサイズやFAST_START_MTTR_TARGET初期化パラメータの設定など、複数の要因が影 響します。インスタンスのリカバリ時間を制限するためにFAST_START_MTTR_TARGETパラメー タが設定されている場合、Oracle Databaseは自動的にチェックポイントを必要に応じて頻繁に試み ます。この場合は、ログ・ファイルが小さすぎることによるチェックポイントの追加発生を防ぐ ために、ログ・ファイルを十分なサイズに設定する必要があります。最適なサイズ
は、V$INSTANCE_RECOVERYビューからOPTIMAL_LOGFILE_SIZE列を問い合せることで取得で きます。また、Oracle Enterprise Manager Cloud Control (Cloud Control)の「REDOログ・グルー プ」ページでも、サイズ設定のアドバイスを取得できます。
REDOログ・ファイルに特定のサイズを推奨できない場合もありますが、100MBから数GBの範囲 内にあるREDOログ・ファイルが妥当であると考えられます。システムが生成するREDOの量に従 って、オンラインREDOログ・ファイルをサイズ設定します。およその目安として、多くても20分 ごとに1回ログ・ファイルを切り替えます。
関連項目:
REDOログの管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
表領域
Database Configuration Assistant(DBCA)を使用してデータベースを作成する場合、シード・データ ベースには必要な表領域すべてが自動的に組み込まれます。DBCAを使用しないように選択した場 合は、データベースの作成後に追加表領域を作成する必要があります。
すべてのデータベースには、SYSTEMおよびSYSAUX表領域に加えて複数の表領域が必要です。こ れらの追加表領域は次のとおりです。
ソートなどの操作に使用される一時表領域
読取り一貫性、リカバリおよびUNDO文に関する情報を格納するためのUNDO表領域
アプリケーションで使用する少なくとも1つの表領域(ほとんどの場合、アプリケーションに は複数の表領域が必要です)
データ・ファイルが多数ある非常に大規模な表領域の場合は、複数のALTER TABLESPACE ...
ADD DATAFILE文を同時に実行できます。表領域の作成時、表領域を構成するデータファイルは 特殊な空のブロック・イメージで初期化されます。一時ファイルは初期化されません。
Oracle Databaseでは、この初期化により、すべてのデータファイル全体に書込みが行えるようにな
りますが、この処理をシリアルに実行すると時間がかかります。したがって、複数のCREATE TABLESPACE文を同時に実行して、表領域の作成を高速化します。永続的な表の場合、表領域作 成時にローカルまたはグローバルのいずれかのエクステント管理を選択するかで、パフォーマン スに大きな影響を与える可能性があります。読取り操作と比べて、普通または大規模な、挿入、
変更または削除操作を行う永続的な表領域の場合は、ローカル・エクステント管理を選択しま す。
永続表領域 - 自動セグメント領域管理
永続的な表領域では、自動セグメント領域管理を使用することをお薦めします。ビットマップ表 領域と呼ばれることも多い永続表領域は、ビットマップ・セグメント領域管理によってローカル に管理される表領域です。
関連項目:
空き領域管理の詳細は、『Oracle Database概要』を参照してください。