Kolom kunci indeks adalah bagian dari b-tree dari indeks. Kolom yang disertakan tidak.
Ambil dua indeks:
CREATE INDEX index1 ON table1 (col1, col2, col3)
CREATE INDEX index2 ON table1 (col1) INCLUDE (col2, col3)
index1
lebih cocok untuk jenis kueri ini:
SELECT * FROM table1 WHERE col1 = x AND col2 = y AND col3 = z
Sedangkan index2
lebih cocok untuk jenis kueri ini:
SELECT col2, col3 FROM table1 WHERE col1 = x
Dalam kueri pertama, index1
menyediakan mekanisme untuk dengan cepat mengidentifikasi deretan bunga. Kueri akan (mungkin) dijalankan sebagai pencarian indeks, diikuti oleh pencarian bookmark untuk mengambil baris penuh.
Dalam kueri kedua, index2
bertindak sebagai indeks penutup. SQL Server tidak harus mencapai tabel dasar sama sekali, karena indeks menyediakan semua data yang dibutuhkan untuk memenuhi kueri. index1
juga bisa bertindak sebagai indeks penutup dalam kasus ini.
Jika Anda menginginkan indeks penutup, tetapi tidak ingin menambahkan semua kolom ke b-tree karena Anda tidak mencarinya, atau tidak bisa karena mereka bukan tipe data yang diizinkan (misalnya, XML), gunakan TERMASUK klausa.