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

SQL Server 2005 men-cache rencana eksekusi yang tidak akan pernah berhasil

Anda mungkin tertarik dengan Aturan Pertama Pemrograman .

Indeks berkerumun selalu mencakup semua baris. Mungkin dipesan oleh z , tetapi akan tetap berisi semua kolom lain di tingkat daun.

Alasan SQL Server terkadang lebih memilih pemindaian berkerumun daripada pencarian indeks adalah ini. Saat Anda melakukan pencarian indeks, Anda harus menindaklanjutinya dengan pencarian bookmark ke indeks berkerumun untuk mengambil kolom yang tidak ada dalam indeks.

Saat Anda melakukan pemindaian indeks berkerumun, menurut definisi Anda menemukan semua kolom. Itu berarti tidak diperlukan pencarian bookmark.

Ketika SQL Server mengharapkan banyak baris, ia mencoba untuk menghindari pencarian bookmark. Ini adalah pilihan yang telah teruji oleh waktu. Pencarian indeks nonclustered secara rutin dikalahkan oleh pemindaian indeks clustered.

Anda dapat menguji ini untuk kasus Anda dengan memaksa baik dengan with (index(IX_YourIndex)) petunjuk kueri .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menggabungkan dua tabel dengan jumlah baris yang sama berdasarkan urutannya

  2. Atur lebar gambar secara dinamis dengan Eval di ASP.NET

  3. Menaikkan kolom bigint secara otomatis?

  4. Ekspresi reguler untuk memvalidasi nama tabel SQL Server

  5. Bagaimana cara membuang semua gambar kami dari bidang VARBINARY (MAX) di SQL Server 2008 ke sistem file?