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

Beberapa Indeks vs Indeks Multi-Kolom

Saya setuju dengan Cade Roux.

Artikel ini akan membawa Anda ke jalur yang benar:

  • Indeks di SQL Server 2005/2008 – Praktik Terbaik, Bagian 1
  • Indeks di SQL Server 2005/2008 – Bagian 2 – Internal

Satu hal yang perlu diperhatikan, indeks berkerumun harus memiliki kunci unik (kolom identitas yang saya sarankan) sebagai kolom pertama. Pada dasarnya ini membantu memasukkan data Anda di akhir indeks dan tidak menyebabkan banyak IO disk dan pemisahan Halaman.

Kedua, jika Anda membuat indeks lain pada data Anda dan dibuat dengan cerdas, indeks tersebut akan digunakan kembali.

misalnya bayangkan Anda mencari tabel di tiga kolom

negara bagian, kabupaten, pos.

  • Anda terkadang hanya mencari berdasarkan negara bagian.
  • Anda terkadang menelusuri menurut negara bagian dan kabupaten.
  • Anda sering mencari berdasarkan negara bagian, kabupaten, kode pos.

Kemudian indeks dengan negara bagian, kabupaten, zip. akan digunakan di ketiga pencarian ini.

Jika Anda mencari cukup banyak dengan zip saja maka indeks di atas tidak akan digunakan (oleh SQL Server pula) karena zip adalah bagian ketiga dari indeks itu dan pengoptimal kueri tidak akan melihat indeks itu sebagai membantu.

Anda kemudian dapat membuat indeks di Zip saja yang akan digunakan dalam contoh ini.

Omong-omong, Kami dapat mengambil keuntungan dari fakta bahwa dengan pengindeksan Multi-Kolom, kolom indeks pertama selalu dapat digunakan untuk pencarian dan ketika Anda mencari hanya dengan 'status', ini efisien tetapi belum seefisien indeks Kolom Tunggal pada 'status '

Saya kira jawaban yang Anda cari adalah bahwa itu tergantung pada klausa mana dari kueri yang sering Anda gunakan dan juga menurut grup Anda.

Artikelnya akan banyak membantu. :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan NEWSEQUENTIALID() untuk Membuat GUID yang Bertambah di SQL Server

  2. Mana yang lebih cepat COALESCE ATAU ISNULL?

  3. Teknik Optimasi Kueri di SQL Server:5 Praktik Terbaik untuk Meningkatkan Kinerja Kueri

  4. Konversi 'datetime' menjadi 'date' di SQL Server (Contoh T-SQL)

  5. Pro dan Kontra menggunakan SqlCommand Siapkan di C#?