ROWID疑似列

TimesTenでは、表に保存される各行にROWIDと呼ばれる一意のIDが割り当てられます。このrowid (ROWID疑似列と呼ばれる)のデータ型はROWIDです。

TimesTen Scaleoutでは、ROWID疑似列はTimesTen Classicとは異なる意味を持ちます。

TimesTen Scaleoutの場合:

  • TimesTen Scaleoutでは、すべての要素にわたる一意性を確保するために、ROWIDが使用されます。

  • ROWIDは、行の特定のコピーの識別子です。コピー元の要素が使用可能でないためにそのコピーが使用可能ではない場合は、ROWIDで行にアクセスできません。この場合は、主キーで行にアクセスする必要があります。

  • 行の各コピーには異なるROWID値があります。このことは、K-safetyが1に設定されている複製分散スキーム、およびK-safetyが2に設定されているすべての表(どのような分散スキームでも)に該当します。この場合、ROWIDベースのアクセスを使用すると、TimesTen Scaleoutは最初のデータ領域のROWIDの値を返します。

  • アプリケーションにはROWID値を格納せず、これらの値を後で使用するようにしてください。

  • ROWID値は、(データの再分散によって)データの場所が変更された場合、変化することがあります。

    ttGridAdmin dbDistributeコマンドの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』「データベースの分散スキームの設定または変更(dbDistribute)」を参照してください。

  • TimesTen Scaleoutでは、ROWIDデータ型はサポートされていません。

TimesTen Classicの場合:

  • ROWIDは、ROWID擬似列を問い合せることで確認できます。

  • ROWIDは(実際の列ではなく)疑似列であるため、データベース領域は必要ありません。ROWIDを更新したり、索引を作成したり、削除することはできません。

  • ROWID値は、表に行が存在する間は保持されます。

  • ROWID値は、リカバリ、バックアップおよびリストア処理を行っても保持されます。ただし、レプリケーションの結果として、またはttMigrateを実行してデータベースから行を移行し、データベースに戻した結果として作成された行のコピー、またはttBulkCpを実行してデータベースから行をコピーし、データベース戻した結果として作成された行のコピーは、元の行とは異なるROWID値になります。

TimesTen Scaleoutの詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』「データ分散でのROWIDの理解」を参照してください。

TimesTen ClassicのROWIDの詳細は、「式の指定」を参照してください。ROWIDデータ型の詳細は、「ROWIDデータ型」を参照してください。