Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Câu lệnh Delete trong SQL rất chậm

Những điều có thể khiến quá trình xóa bị chậm:

  • xóa nhiều bản ghi
  • nhiều chỉ mục
  • thiếu chỉ mục trên khóa ngoại trong bảng con. (cảm ơn @CesarAlvaradoDiaz đã đề cập đến vấn đề này trong phần bình luận)
  • bế tắc và chặn
  • trình kích hoạt
  • xóa theo tầng (mười bản ghi mẹ mà bạn đang xóa có thể đồng nghĩa với việc hàng triệu bản ghi con bị xóa)
  • Nhật ký giao dịch cần phát triển
  • Nhiều khóa nước ngoài để kiểm tra

Vì vậy, lựa chọn của bạn là tìm ra những gì đang chặn và khắc phục nó hoặc chạy quá trình xóa trong những giờ tắt khi chúng không ảnh hưởng đến tải sản xuất bình thường. Bạn có thể chạy xóa hàng loạt (hữu ích nếu bạn có trình kích hoạt, xóa theo tầng hoặc một số lượng lớn bản ghi). Bạn có thể thả và tạo lại các chỉ mục (tốt nhất nếu bạn cũng có thể làm điều đó trong giờ tắt).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để ngăn quy mô DateTimeOffset gây ra một ChangeConflictException trong linq thành Sql?

  2. Node.js và Microsoft SQL Server

  3. Khi nào sử dụng chỉ mục được phân cụm hoặc không được phân cụm trong SQL Server

  4. TSQL:Phân tách / phân tích cú pháp lồng nhau của chuỗi thành bảng (nhiều Thẻ được nối:Giá trị trong một chuỗi)

  5. Nhận bản ghi 10 phút trước ngày giờ hệ thống trong SQL