ユニバーサルユニーク識別子 (UUID) を使用して、テーブルのユニークなローを識別できます。UUID は、グローバルユニーク識別子 (GUID) とも呼ばれます。この値は、1 台のコンピュータで生成された値が、他のコンピュータで生成された値と一致しないように生成されます。したがって、これらの値は、レプリケーション環境と同期環境でキーとして使用できます。
プライマリキーとして使用する場合、GLOBAL AUTOINCREMENT 値と比べると、UUID 値にはいくつかのトレードオフがあります。次に例を示します。
各リモートデータベースにユニークなデータベース ID を割り当てる必要がないので、GLOBAL AUTOINCREMENT より UUID の方が簡単に設定できます。システムのデータベース数や個々のテーブルのロー数を考慮する必要もありません。抽出ユーティリティ (dbxtract) を使用してデータベース ID の割り当てを処理できます。GLOBAL AUTOINCREMENT では通常、BIGINT データ型を使用する場合はこの点を考慮する必要はありませんが、BIGINT より小さいデータ型を使用する場合は考慮する必要があります。
UUID 値は GLOBAL AUTOINCREMENT に必要な値よりかなり大きいため、プライマリテーブルと外部テーブルの両方でより多くのテーブル領域が必要です。また、UUID を使用すると、これらのカラムのインデックスの効率も悪くなります。つまり、GLOBAL AUTOINCREMENT の方がパフォーマンスに優れています。
UUID には暗黙的な順序付けがありません。たとえば、A と B が UUID 値で、A が B よりも大きい場合に、A と B が同じコンピュータ上で生成されたとしても、A が B の後で生成されたとはかぎりません。暗黙的な順序付けが必要な場合は、追加のカラムとインデックスが必要になります。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |