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

Bacaan tidak berkurang setelah memasang Indeks

Anda memilih 50 baris teratas yang diurutkan berdasarkan e.uon desc . Indeks yang dimulai dengan uon akan mempercepat kueri:

create index IX_Empl_Uon on dbo.empl (uon)

Indeks akan memungkinkan SQL Server untuk memindai baris N teratas dari indeks ini. N adalah angka tertinggi di pagination Anda:untuk halaman ke-3 dari 50 elemen, N sama dengan 150. SQL Server kemudian melakukan 50 pencarian kunci untuk mengambil baris penuh dari indeks berkerumun. Sejauh yang saya tahu, ini adalah contoh buku teks di mana indeks dapat membuat perbedaan besar.

Tidak semua pengoptimal kueri akan cukup pintar untuk memperhatikan bahwa row_number() over ... as rn dengan where rn between 1 and 50 berarti 50 baris teratas. Tetapi SQL Server 2012 melakukannya. Ini menggunakan indeks baik untuk halaman pertama dan berturut-turut, seperti row_number() between 50 and 99 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengatasi batas kolom maksimum SQL Server 1024 dan ukuran catatan 8kb

  2. SQL CASE dan variabel lokal

  3. Mengapa RAND() tidak menghasilkan angka acak?

  4. Kinerja FILESTREAM SQL Server 2008

  5. sp_add_schedule vs sp_add_jobschedule di SQL Server:Apa Bedanya?