非クラスター化インデックス,クラスター化インデックスの,付加列インデックスの話をしてきました。
プライマリキーを作るとクラスター化インデックスが作成される
今回は手動でクラスター化インデックスを作成して解説しましたが,プライマリキーを作成すると,クラスター化インデックス自動的に作成されます。ですのでクラスター化インデックスを自分で作るというのは現場ではあまりないと思います。
その代わり,プライマリキーを作る時は,クラスター化インデックスができることを理解したうえで,プライマリキーを作成してください。クラスター化インデックスが最速のインデックスなので,意味のない連番などで,プライマリキーを作ると,最速の検索条件を捨てていることになるので,「Id+日付」とか,極力運用で使用する検索キーを想定してプライマリキーを作るようにしてください。
ユニークキーを作ると非クラスター化インデックスが作成される
プライマリキーの時と同様に,ユニークキーを作成すると非クラスター化インデックスが作成されます。なので,ユニークキーに対して個別で非クラスター化インデックスを作成する必要はありません。例えば社員テーブルのメールアドレスなど,重複するはずのない項目はユニークキーにしておくことで,重複したデータ入れられなくなると同時に,メールアドレスでの検索も非クラスター化インデックスが効くことになります。
SQLServerの重複チェックはインデックス行っている
プライマリキーにしても,ユニークキーにしても,重複キーを許しませんよね。これって,重複したデータが入った瞬間にSQLServerは更新エラーを返しますが,どうやってチェックしているかというと,インデックスで行っているのです。インデックスが無かったら,同じ値が入力されてから,10秒くらいしてエラーになる可能性がありますが,キーを作成した時点でインデックスが作成されるため,高速に重複チェックが行われます。なのでSQLServerの処理上必要なので,自動でインデックスが作成されています。
■4700人以上が受講している動画コースはこちらからご確認ください
#S1_01_はじめに
#S1_02_インデックスとは
#S1_03_インデックスの有無実演
#S1_04_SQLServerのインストール
#S2_01_データベースとテーブルの作成
#S2_02_データの作成
#S2_03_全件検索
#S2_04_キャッシュとは
#S2_05_検索条件ありで検索
#S2_06_テーブルスキャンとは
#S2_07_インデックスの種類
#S2_08_非クラスター化インデックスの作成
#S2_09_非クラスター化インデックスの内部構造
#S2_10_インデックスのない列の検索とインデックスの有効化無効化
#S2_11_クラスター化インデックスの作成
#S2_12_クラスター化インデックスの内部構造
#S2_13_クラスター化インデックスの検索
#S2_14_インデックスの検索補足
#S2_15_付加列インデックス
#S2_16_プライマリキーとユニークキー
#S2_17_インデックス作成手順
#S2_18_インデックスの注意点
おわりに
■4700人以上が受講している動画コースはこちらからご確認ください