Chúng tôi có một bảng có hơn 150 triệu bản ghi. Chúng tôi cần xóa/xóa tất cả các hàng. Thao tác xóa sẽ mất vĩnh viễn do nó ghi vào nhật ký t và chúng tôi không thể thay đổi mô hình khôi phục của mình cho toàn bộ DB. Chúng tôi đã thử nghiệm tùy chọn bảng cắt ngắn.Xóa hàng loạt (cắt ngắn và xóa)
Những gì chúng tôi nhận thấy rằng cắt bớt deallocates các trang từ bảng, và nếu tôi không sai làm cho chúng có sẵn để tái sử dụng nhưng không thu nhỏ db tự động. Vì vậy, nếu chúng ta muốn giảm kích thước DB, chúng ta thực sự cần chạy lệnh db thu nhỏ sau khi cắt bớt bảng.
Đây có phải là thủ tục bình thường không? Bất cứ điều gì chúng ta cần phải cẩn thận hoặc nhận thức về, hoặc có bất kỳ lựa chọn thay thế tốt hơn?
Mở SQL Server, 'thả table' không thể được sử dụng nếu có ràng buộc khoá ngoại. http://msdn.microsoft.com/en-us/library/ms173790.aspx – ProKiner
@prokiner bạn phải đối phó với các tham chiếu khóa ngoài bất kể điều gì, tức là liệu (các) hàng có bị xóa, thu nhỏ hoặc bị xóa hay không, bất kỳ bản ghi nào trong các bảng khác, tham chiếu (các) hàng này phải được xóa trước hoặc bị loại bỏ ràng buộc. Trong một số trường hợp, điều này có thể là "tự động" với trình kích hoạt ON DELETE, nhưng điều đó hầu như không áp dụng cho cơ sở dữ liệu loại hơn 150 triệu. – mjv
@prokiner, tôi nên rõ ràng hơn.Đó là hai ý nghĩ riêng biệt, tôi đã chỉ ra vấn đề là OP đã tuyên bố rằng họ đã thử nghiệm phương pháp cắt ngắn. Tôi đã làm sạch câu trả lời của tôi. –