Tôi có một hàng trong một bảng. Hàng này có một cột ID được tham chiếu trong một vài bảng khác với hàng triệu hàng. Câu lệnh SQL để xóa hàng luôn luôn hết thời gian. Từ thiết kế của tôi, tôi biết hàng tôi muốn xóa không bao giờ được tham chiếu ở bất kỳ nơi nào khác. Do đó tôi muốn SQL bỏ qua việc phải kiểm tra tất cả các bảng khác cho một tham chiếu khóa ngoài tới hàng này và xóa hàng ngay lập tức. Có cách nào nhanh chóng để làm điều này trong SQL 2008? Có lẽ điều gì đó dọc theo các dòng:Xóa một hàng SQL bỏ qua tất cả các khóa và ràng buộc nước ngoài
DELETE FROM myTable where myTable.ID = 6850 IGNORE CONSTRAINTS
Hoặc điều gì đó dọc theo các dòng đó.
Bạn đã cân nhắc thêm chỉ mục vào các cột tham chiếu chính trên các bảng có liên quan chưa? Nếu chưa có, điều này sẽ cho phép SQL nhanh chóng xác định xem có bất kỳ hàng nào khác tham chiếu đến hàng bạn đang cố xóa hay không và cũng có thể cung cấp cho bạn hiệu suất đáng kể ... –
Tôi có thể đề xuất một cách tiếp cận khác. Trong hệ thống của tôi, hầu hết (hàng trăm) bảng trỏ đến một dbo.Company.Id. Ngay cả khi xóa một công ty trống, không có tham chiếu, chỉ làm cho DB kiểm tra tính toàn vẹn của FK trong hàng tỷ hàng. Giải pháp: Chỉ cần sử dụng xóa hợp lý. – jean