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

Xóa một lượng lớn dữ liệu khỏi SQL Server 2008

Câu hỏi của bạn khá mơ hồ, nhưng tôi nghĩ bạn đang nói thế này:

  • Tôi có thể CHÈN dữ liệu vào cơ sở dữ liệu của mình
  • CẬP NHẬT dữ liệu của tôi có vẻ khó khăn, vì vậy tôi chỉ muốn XÓA rồi CHÈN lại (vì tôi đã viết mã đó rồi)

Tôi có thể nói rằng đây là một ý tưởng tồi, vì những lý do sau (và không nghi ngờ gì nữa):

  • Ngay cả khi bạn chỉ XÓA, bạn vẫn cần xác định các hàng chính xác để xóa, xóa khỏi bảng theo đúng thứ tự, v.v. Vì vậy, không chắc bạn sẽ tiết kiệm được nhiều thời gian
  • Bạn sẽ thêm độ phức tạp không cần thiết và công việc bảo trì bổ sung vào ứng dụng:xử lý giao dịch, mã bổ sung để duy trì, thay đổi quyền, v.v.
  • Việc thêm logic phía máy chủ vào cơ sở dữ liệu dưới dạng trình kích hoạt và / hoặc thủ tục sẽ trở nên khó khăn hơn vì DELETE không thực sự có nghĩa là XÓA nữa, nó có thể có nghĩa là bắt đầu một CẬP NHẬT (tôi có nghĩa là về mặt logic, không phải về mặt vật lý) và đó là một nỗi đau lớn khi duy trì cũng như có khả năng phá vỡ bất kỳ mã, dấu vết hoặc kiểm tra nào dựa trên các hành động hoặc sự kiện DML
  • Cơ sở dữ liệu sẽ cần ghi nhật ký nhiều hơn vì bạn đã chia một thao tác thành hai hoạt động

Có lẽ bạn có lý do chính đáng để muốn tránh CẬP NHẬT, nhưng "rất khó viết" không nên là một trong số đó (xin lỗi nếu tôi đang đơn giản hóa tình huống của bạn).

Bạn có thể nhận được câu trả lời hữu ích hơn nếu bạn giải thích chính xác thế nào là "khó", cung cấp một số thông tin cơ bản về "lượng lớn dữ liệu" nghĩa là gì, hiển thị một số cấu trúc bảng và mã minh họa những khó khăn của bạn, v.v.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm hiểu xem một bảng có được phân vùng trong SQL Server (T-SQL) hay không

  2. Làm thế nào để lưu trữ các giá trị thập phân trong SQL Server?

  3. SSIS ForEach loop - thay đổi kết nối bên trong vòng lặp for

  4. Triển khai chỉ báo hiệu suất máy chủ SQL cho các truy vấn, thủ tục được lưu trữ và trình kích hoạt

  5. Tổng tích lũy SQL Server theo nhóm