レプリケートされる表を変更するときのパフォーマンスの考慮事項

列を追加または削除するために表を変更すると、パフォーマンスや領域使用率が低下する場合があります。

  • 1つ以上の列を追加するために表を変更すると、その列用に新しいパーティションが割り当てられます。パーティションの追加によって、データの取得時に追加の処理が発生するため、パフォーマンスが低下します。『Oracle TimesTen In-Memory Database SQLリファレンス』ALTER TABLEを参照してください。

  • 列を削除するために表を変更しても、領域が解放されるわけではないため、領域使用率が低下します。

TABLE DEFINITION CHECKING EXACT属性で定義されたレプリケーション・スキームでは、両方のマスター・データベース間で操作をレプリケートできるようにするために、それらのマスター・データベース上に同じ物理構造の表が必要です。EXACT表定義チェック属性を使用している場合、列の削除によって発生した余分な領域を解放したり、列の追加によって発生した余分なパーティションを排除するための唯一の方法は、表を削除して再作成した後、その表にデータをリロードすることです。

ただし、TABLE DEFINITION CHECKING RELAXED属性で表を作成した場合は、(表のキー定義、列数、列のデータ型は同じですが、)両方のマスター・データベースで物理構造が同じである必要はありません。TABLE DEFINITION CHECKING RELAXED属性によってパフォーマンスはわずかに低下しますが、これは両方のマスター上の表が同じでない場合です。パフォーマンスの変化は、ワークロードおよび表のパーティションおよび列の数に応じて異なります。

RELAXEDが設定されたデータベースのパフォーマンスを向上させるには、ttMigrate -r -relaxedUpgradeを使用して表を結合し、列の削除によって発生した余分な領域または列の追加によって作成された複数のパーティションを排除します。これを行うことができるのは1つのデータベースのみであり、その間、もう一方のデータベースは稼働を続け、アプリケーションにかわってリクエストを受け付けています。レプリケーションに含まれる両方のデータベースを同時に停止する必要はなく、1つずつ順番にttMigrate -r -relaxedUpgradeを実行できます。これは、表が頻繁に変更されるデータベースの場合、およびデータベースがオンライン・アップグレードのみを行う場合に最適です。

表定義チェックがRELAXEDの場合、レプリケートされた表に対するttMigrate -r -relaxedUpgradeでできるのは、パーティションを結合し、余分な領域を排除することのみです。ただし、表でEXACT属性が使用されている場合は、表定義チェックを一時的にRELAXEDに設定し、表のパーティションと領域を連結した後、EXACTにリセットできます。

TABLE DEFINITION CHECKING RELAXED属性の詳細は、「レプリケートされた表の列定義オプション」を参照してください。

ノート:

表に複数のパーティションがあるかどうかを確認できます。詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』ALTER TABLE内の「ALTER TABLEを使用する場合のパーティションの理解」にある詳細説明、および『Oracle TimesTen In-Memory Databaseモニタリングおよびトラブルシューティング・ガイド』表のパーティション数の確認にある説明を参照してください。