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

Perintah DELETE terlalu lambat dalam Tabel dengan Indeks Clustered

Mungkin lambat karena penghapusan besar menghasilkan log transaksi besar. Cobalah untuk menghapusnya dalam potongan, seperti:

WHILE 1 = 1
BEGIN
    DELETE TOP (256) FROM FTPLog WHERE FTPLogId <= @MaxFTPLogId
    IF @@ROWCOUNT = 0
        BREAK
END

Ini menghasilkan transaksi yang lebih kecil. Dan ini mengurangi masalah penguncian dengan menciptakan ruang bernapas untuk proses lain.

Anda juga dapat melihat tabel yang dipartisi . Ini berpotensi memungkinkan Anda untuk menghapus entri lama dengan menghapus seluruh partisi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengikuti kebuntuan transaksi tunggal di seluruh versi SQL Server

  2. Jenis yang disebutkan di SQL Server 2008?

  3. Temukan nilai di mana saja dalam database

  4. Mencantumkan informasi tentang semua file database di SQL Server

  5. batalkan perubahan pada prosedur tersimpan