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

Seberapa penting urutan kolom dalam indeks?

Lihatlah indeks seperti ini:

Cols
  1   2   3
-------------
|   | 1 |   |
| A |---|   |
|   | 2 |   |
|---|---|   |
|   |   |   |
|   | 1 | 9 |
| B |   |   |
|   |---|   |
|   | 2 |   |
|   |---|   |
|   | 3 |   |
|---|---|   |

Lihat bagaimana membatasi pada A terlebih dahulu, karena kolom pertama Anda menghilangkan lebih banyak hasil daripada membatasi pada kolom kedua Anda terlebih dahulu? Lebih mudah jika Anda membayangkan bagaimana indeks harus dilintasi, kolom 1, lalu kolom 2, dll...Anda melihat bahwa memotong sebagian besar hasil dalam pukulan pertama membuat langkah ke-2 jauh lebih cepat.

Kasus lain, jika Anda bertanya pada kolom 3, pengoptimal bahkan tidak akan menggunakan indeks, karena tidak membantu sama sekali dalam mempersempit kumpulan hasil. Kapan pun Anda berada dalam kueri, mempersempit jumlah hasil yang harus ditangani sebelum langkah berikutnya berarti kinerja yang lebih baik.

Karena indeks juga disimpan dengan cara ini, tidak ada pelacakan mundur di seluruh indeks untuk menemukan kolom pertama saat Anda menanyakannya.

Singkatnya:Tidak, ini bukan untuk pertunjukan, ada manfaat kinerja yang nyata.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghitung DISTINCT pada beberapa kolom

  2. Mengubah string yang Dipisahkan Koma menjadi baris individual

  3. Memecahkan Masalah Kehabisan Utas Pekerja

  4. SQL Server datetime SEPERTI pilih?

  5. DECODE() fungsi di SQL Server