Amazon RDS Oracle DB インスタンスは、すべてのテーブルスペースに対して自動拡張を有効にして作成されます。 つまり、ストレージが不要になるか、割り当てられたストレージが使用されるまで、 … 断片化で遅くなるのは、基本はI/O効率が良くないからです。I/O効率といってもいろいろとありますが、I/O回数が増えてしまう、1回のサービスタイム(処理時間)が悪くなってしまうなどがあります。どのように効率が悪くなってしまうのかを、表領域、ブロック、行断片、索引の順に説明します。

既存のOracleサポートアカウントを継続利用可能。SR(サービスリクエスト)もOracleに対して行う。RDS固有の問題についてはAWSサポートへ連絡できる。AWSとOracle両組織から援助が必要な場合は「マルチベンダーサポートプロセス」というものが用意されてる。

一時テーブルスペースのサイズを変更するには (10 GB など)、テーブルスペース使用クエリの出力に基づいて次のクエリを実行します。, このコマンドは、テーブルスペースが 10 GB のしきい値を超える範囲を割り当てた場合に失敗することがあります。, 4.

それでは、次回まで、ごきげんよう。. まず、索引の断片化の前にBツリーの構造について説明します。 Q: Amazon RDS for Oracle は、Oracle Market-Driven Support (MDS) for 11.2.0.4 をサポートしていますか。 Oracle MDS for Amazon RDS for Oracle について詳しくは、AWS アカウントチームまたは AWS サポートにお問い合わせください。 表領域を割り当てる単位はエクステントです。このエクステントはオブジェクト(テーブルなど)毎に指定できるので、オブジェクトの大きさなどによって異なるサイズになる可能性があります。表領域に一つのオブジェクトしか割り当てないのであれば発生しません。大きいサイズのテーブルであれば可能かもしれませんが、小さいテーブルではそうはいかないですね。よって、断片化が発生しないようなルール(例えば、表領域のデフォルト・エクステントを指定するなど)を作成して運用するのが一般的でしたが、これを行うのは簡単ではありません。これをもっと簡単にするためにローカル管理表領域ができたのです。

UPDATE文によって行サイズが長くなると行断片(行移行/行連鎖)が発生する可能性があります。以下の図のようにUPDATE文を行うことで行サイズが長くなってしまいブロックに収まらなくなると、別のブロックにデータを格納します。このとき行全体がブロックに収まる場合はすべてのデータを移行します(行移行)。収まらない場合は複数のブロックにまたがって格納します(行連鎖)。どちらもブロックをまたがっていますので行連鎖という場合もあります。これは、UPDATE文前に行が格納されていたブロックに行ヘッダは残されるからです。行ヘッダが残るのは、ROWIDが変わると索引が利用できなくなるからです。行が1行に収まらないため複数ブロックにアクセスするのは仕方ありませんが、空き領域に入りきらないために行移行されて、1行アクセスするために2ブロックをアクセスするのは効率よくありません。このために頻繁にUPDATEされるテーブルはPCTFREEパラメータで空き領域の割合を多めに作成するようにします。, (4)索引

アーカイブログに割り当てられるスペースが予想を超える場合は、保持ポリシーの値を更新します。その後、Amazon RDS の自動化により、古いアーカイブログファイルを消去することができます。次の例では、24 時間のアーカイブログを保持するように RDS インスタンスを設定します。, トレースファイルのリスト化とパージの詳細については、トレースファイルのパージを参照してください。, 1. 出力に基づいて、セッションを強制終了し (アプリケーションロジックとビジネスで許可されている場合)、手順 3 の通りに一時テーブルスペースのサイズ変更を再試行できます。, 7. セッションの強制終了がオプションでない場合は、新しい一時テーブルスペースを作成します。次に、 新しいテーブルスペースをデフォルトとして設定し、古い一時テーブルスペースを削除します。, 2. 津島博士のパフォーマンス講座 第78回 Oracle DatabaseのJSONについて, Maximum Security Zonesで、クラウドのセキュリティ対策の弱体化を防ぐ, UNIFORM(指定サイズがエクステント・サイズになります。デフォルトは1Mバイトです), AUTOALLOCATE(管理サイズが64Kバイトになりエクステント・サイズはオブジェクト・サイズによって変わります), 追加するキー値が最大でない場合は、ブロック内のキーと追加しようとするキーの中で中央の値のキーで二つのブロックに分割します。, ディスクシーク時間:磁気ヘッドを移動するのに要する時間。ハードディスクの中で一番遅い処理, 回転待ち時間:磁気ヘッドが目的の位置に来るのに要する時間。回転スピードが高速であれは短くなります. ここでハードディスクのアクセスを簡単に説明します。 Oracle University 無償オンラインセミナー(11月)

第6回で索引の断片化について簡単に説明しましたが、もう少し詳しく、なぜ断片化が発生するかについて説明します。

ブロックの断片化により、ブロックの利用効率が悪くなってブロック数が増えてしまうことで、I/Oが増えてしまい、パフォーマンスが遅くなってしまいます。 Gold DBA のセミナー、Oracle Certified... 津島博士のパフォーマンス講座 Indexページ ▶▶ はじめに 瀬田@大阪オフィスです。 Postgresqlマンとして生きてきましたが、RDSにあるんじゃあ触るしかないOracle様。データ断片化によるストレージ圧迫と再編成について調査しました。 なぜ領域 …

Security Zones"を翻訳した... CAPTCHA challenge response provided was incorrect. 一時テーブルスペースの使用状況に関する情報を表示するには、ビュー DBA_TEMP_FREE_SPACE に対して次のクエリを実行します。, 3. このマージ処理は、Bツリーのバランスと性能を維持する上で重要です。しかし、問題になるのがマージ処理(マージするかの判断も含め)に要するコストが高いことです。また、そのマージ後のブロックに幾つかの追加操作が行われただけで、分割しなければならないことです。そのため、OracleのBツリー索引は自動マージ処理を行わないようにしています。Oracle8iからは自動的には行いませんが、以下のSQL文で索引の結合ができるようになっています。ただし、同じブランチ内のリーフ・ブロックのみが結合の対象になります(50%を下回るリーフ・ブロックが隣接していても、上のブランチ・ブロックが異なれば結合しません)ので、すべてを結合してくれる訳ではありません。また、リーフ・ブロック数は減りますが、ツリーの階層は変化しません(索引範囲スキャンやキャッシュヒット率は向上します)。そこまで変更したいのであれば第6回で説明したように再構築が必要になります。, ■2. このクエリで .dmp ファイルが見つかった場合は、次のクエリを実行してファイル名を .dmp ファイルの名前に置き換えて削除します。, DB インスタンスを変更し、Apply Immediately パラメータを使用する. Oracle を実行している Amazon RDS DB インスタンスには、最初から 4 つのオンライン REDO ログ (それぞれ 128 MB) があります。次の例では、Amazon RDS プロシージャを使用してログをそれぞれ 128 MB から 512 MB にサイズ変更する方法を示します。 Bツリー索引は、階層が多いとアクセス効率が悪くなります。アクセスするときルート・ブロックからリーフ・ブロックにアクセスしてからデータ・ブロックにアクセスするため、できるだけ階層の少ない索引を作った方が良い訳です。 ョンログにアクセスする, Amazon RDS DB インスタンスを変更する, DB インスタンスディレクトリ内のファイルのリスト化, DB インスタンスディレクトリ内のファイルの読み取り. ョングループを使用する, Amazon RDS DB インスタンスの作成. 索引の断片化が発生するのは、ブロック内の利用効率が悪くなりリーフ・ブロックが増えてしまい、アクセスブロック数が増えてしまうからです。第6回で説明したように、リーフ・ブロックが増えるとBツリーの階層が増加する可能性があります。これは、ブランチ・ブロック数をルート・ブロックで管理できなくなるとブランチ・ブロックの階層が増えるからです。以下の図のように、ブロックにキーが50個格納できるとします(これは、ブロックサイズとキーサイズによります。多く格納できると階層は少なくなります)。1ブランチ・ブロックで50個のリーフ・ブロックを管理できるので、3階層まではリーフ・ブロックが2,500(50×50)までになります。 (1)表領域のエクステント