SQL Serverのインデックス(index)を作成するSQL
構文
SQL Serverでインデックスを作成するには「CREATE INDEX ~ON ~」を使います。
-- クラスター化インデックス作成 CREATE CLUSTERED INDEX {インデックス} ON {テーブル} ({列});
-- 非クラスター化インデックス作成 CREATE NONCLUSTERED INDEX {インデックス} ON {テーブル} ({列});
クラスター化インデックスと非クラスター化インデックスの違い
- クラスター化インデックス・・・テーブルに1つのみ。データを並びかえて格納する
- 非クラスター化インデックス・・・複数可。インデックスへのポインタを格納する
クラスター化インデックスと非クラスター化インデックスの違いをザックリいうと、データ自体を並び替えて保存するのがクラスター化インデックスで、データへリンクしたものが非クラスター化インデックスです。
例1. インデックスを作成する例
-- インデックスindex1作成 CREATE CLUSTERED INDEX index1 on db1.emp (empname);
ここでは、db1にあるempテーブルのempnameにインデックス「index1」を作成しました。
例2.インデックスを複合列で作成するSQL
-- インデックスindex1作成 CREATE CLUSTERED INDEX index1 on db1.emp (empname,depno);
ここでは、db1にあるempテーブルの列「empname」「depno」にインデックス「index1」を作成しました。複数列でインデックスを作成する場合は、列名をカンマで続けて記述します。
参照:クラスター化インデックスの作成 | Microsoft Docs
以上、SQL Serverのインデックス(index)を作成するSQLでした。
コメント