Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kolom Indeks Kunci VS Indeks Termasuk Kolom

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan kolom ke tabel, jika belum ada

  2. Menggunakan JDBC ketika nama server berisi garis miring terbalik (localhost\TESTDATA)

  3. Ganti nama Kunci Utama di SQL Server (T-SQL)

  4. Mengonversi kunci utama int ke bigint di Sql Server

  5. bagaimana cara mendapatkan catatan berbeda berdasarkan tanggal maksimum?