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

Indeks berkerumun pada kolom non-identitas untuk mempercepat penyisipan massal?

Yah, saya telah mengujinya, dan menempatkan indeks berkerumun pada dua kolom "mendefinisikan potongan" meningkatkan kinerja tabel saya.

Memasukkan sepotong sekarang relatif cepat dibandingkan dengan situasi di mana saya memiliki kunci IDENTITAS berkerumun, dan hampir secepat ketika saya tidak memiliki indeks berkerumun. Menghapus bongkahan lebih cepat daripada dengan atau tanpa indeks berkerumun.

Saya pikir fakta bahwa semua catatan yang ingin saya hapus atau sisipkan dijamin untuk semua bersama-sama pada bagian tertentu dari harddisk membuat tabel lebih cepat - akan tampak logis bagi saya.

Perbarui :Setelah satu tahun pengalaman dengan desain ini, saya dapat mengatakan bahwa agar pendekatan ini berhasil, perlu untuk menjadwalkan pembangunan kembali semua indeks secara teratur (kami melakukannya seminggu sekali). Jika tidak, indeks akan segera terfragmentasi dan kinerja akan hilang. Namun demikian, kami sedang dalam proses migrasi ke desain database baru dengan tabel yang dipartisi, yang pada dasarnya lebih baik dalam segala hal - kecuali untuk biaya lisensi Enterprise Server, tetapi kami sudah melupakannya sekarang. Setidaknya saya punya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TODATETIMEOFFSET() Contoh di SQL Server

  2. Apa tipe data SQL terbaik untuk menyimpan string JSON?

  3. Beberapa Koneksi Dengan String Koneksi Yang Sama Dalam Satu Transaksi, Transaksi Ditingkatkan?

  4. Akankah Pekerjaan SQL Server melewati proses terjadwal jika sudah berjalan?

  5. SQL:Diurutkan berdasarkan substring campuran huruf dan angka