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

Bagaimana cara meningkatkan kinerja untuk pemfilteran datetime di SQL Server?

Hanya saran ketika datang ke indeks pada datetime di msql adalah jejak indeks mempengaruhi waktu pencarian (Ya ini tampak jelas ... tapi tolong baca terus).

Pentingnya ini ketika pengindeksan pada datetime mengatakan misalnya '2015-06-05 22:47:20.102' indeks harus memperhitungkan setiap tempat dalam datetime. Ini menjadi sangat besar secara spasial dan besar. Pendekatan sukses yang saya manfaatkan adalah membuat kolom datetime baru dan mengisi data dengan membulatkan waktu ke jam dan kemudian membangun indeks di atas kolom baru ini. Contoh '2015-06-05 22:47:20.102' diterjemahkan menjadi '05-06-2015 22:00:00.000'. Dengan mengambil pendekatan ini, kami membiarkan data terperinci saja dan dapat menampilkannya atau menggunakannya dengan mencari di kolom baru ini yang memberi kami pengembalian kira-kira 10x (minimal) tentang seberapa cepat hasil dikembalikan. Ini karena fakta bahwa indeks tidak harus memperhitungkan bidang menit, detik, dan milidetik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Blokir, Blokir, Blokir di Pintu DBA dengan Pemblokiran SQL Server

  2. penggabungan nvarchar / indeks / nvarchar (maks) perilaku yang tidak dapat dijelaskan

  3. Catatan acak dari tabel database (T-SQL)

  4. Cara tercepat untuk melakukan penyisipan massal bersarang dengan penggunaan scope_identity()?

  5. Permintaan untuk membuat daftar jumlah catatan di setiap tabel dalam database