Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
この文は、指定されたテーブル上にインデックスを作成するために使用します。
CREATE [ UNIQUE ] INDEX [ IF NOT EXISTS ] [ index-name ] ON table-name ( ordered-column-list ) [ WITH MAX HASH SIZE integer ]
ordered-column-list : ( column-name [ ASC | DESC ], ... )
UNIQUE UNIQUE 属性によって、インデックス内のすべてのカラムで同じ値を持つローがテーブル内に複数存在しないようにします。各インデックスキーはユニークであるか、少なくとも 1 つのカラムで NULL を持つ必要があります。
テーブル上の一意性制約とユニークインデックスの間には違いがあります。ユニークインデックスのカラムは NULL を使用できますが、一意性制約のカラムには使用できません。外部キーは、プライマリキーまたは一意性制約は参照できますが、ユニークインデックスは参照できません。ユニークインデックスは NULL の複数のインスタンスを含むことがあるからです。
一意性制約内のカラムが更新時に変更され、その一意性制約が外部キーによって参照されている場合、その一意性制約内のローを今後参照しないローは、すべてリモートから削除されます。
IF NOT EXISTS 句 IF NOT EXISTS 属性を指定し、指定したインデックスがすでに存在する場合、変更は行われず、エラーは返されません。
ordered-column-list カラムの順序リストです。インデックスのカラム値は、昇順または降順にソートできません。
WITH MAX HASH SIZE このインデックスのハッシュサイズをバイト単位で設定します。この値は、データベースに対して有効なデフォルトの MaxHashSize プロパティを上書きします。これは、Ultra Light Java Edition データベースではサポートされていません。 デフォルトのサイズの詳細については、データベースプロパティの読み取りを参照してください。
Ultra Light では、プライマリキーと一意性制約のインデックスは自動的に作成されます。
インデックスによって、Ultra Light が特定のローを検索しやすくし、クエリのパフォーマンスを向上させることができます。ただし、インデックスを管理する必要があるので、同期や INSERT、DELETE、UPDATE の各文の処理は低速になる可能性があります。
インデックスは、データベースに対して発行されたクエリのパフォーマンスを向上させたり、ORDER BY 句を使用してクエリをソートするときに自動的に使用されます。インデックスはいったん作成されると、DROP INDEX を使用して削除するときを除いて、SQL 文では二度と参照されません。
インデックスはデータベース内の領域を占有します。また、インデックスの管理に必要な追加作業は、データ修正操作のパフォーマンスに影響する場合があります。このため、クエリのパフォーマンスが向上しないインデックスの作成は避けてください。
CREATE INDEX 文の処理中は、そのインデックスを参照する要求やクエリは処理されません。また、データベースにアクティブなクエリやコミットされていないトランザクションがある場合は CREATE INDEX を実行できません。
Ultra Light では、実行プランを使用してクエリを最適化することもできます。Ultra Light の実行プランを参照してください。
Ultra Light.NET を使用している場合、すべてのデータオブジェクト (たとえば ULDataReader) に対して Dispose メソッドも呼び出さないと、この文を実行できません。ULBulkCopy.Dispose メソッド [Ultra Light.NET]を参照してください。
スキーマの変更が同時に開始された場合、文は解放されません。Ultra Light データベースのスキーマを参照してください。
次の文は、Employees テーブルで 2 カラムのインデックスを作成します。
CREATE INDEX employee_name_index ON Employees ( Surname, GivenName );
次の文は、ProductID カラム用に SalesOrderItems テーブル上でインデックスを作成します。
CREATE INDEX item_prod ON SalesOrderItems ( ProductID );