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

Lệnh DELETE quá chậm trong bảng có chỉ mục được phân cụm

Nó có thể chậm vì một lần xóa lớn sẽ tạo ra một nhật ký giao dịch lớn. Cố gắng xóa nó thành nhiều phần, như:

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

Điều này tạo ra các giao dịch nhỏ hơn. Và nó giảm thiểu các vấn đề về khóa bằng cách tạo không gian thở cho các quy trình khác.

Bạn cũng có thể xem xét các bảng được phân vùng . Những điều này có khả năng cho phép bạn xóa các mục nhập cũ bằng cách loại bỏ toàn bộ phân vùng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - chỉ mục trên một cột được tính toán?

  2. Cú pháp cho một truy vấn tham số trong Python (pyodbc)

  3. Kiểm tra xem một tham số là null hay rỗng trong một thủ tục được lưu trữ

  4. Nhận cảnh báo:Giá trị rỗng bị loại bỏ bởi hoạt động tổng hợp hoặc SET khác

  5. Tạo một cột được tính toán trong SQL Server bằng T-SQL