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

Các giao dịch nên được xử lý trong .NET hoặc SQL Server?

Không có quy tắc khó và nhanh chóng, nhưng tôi thấy một số lý do để kiểm soát các giao dịch từ cấp doanh nghiệp:

  • Truyền thông qua ranh giới lưu trữ dữ liệu. Các giao dịch không cần phải chống lại một RDBMS; chúng có thể chống lại nhiều thực thể.

  • Khả năng khôi phục / cam kết các giao dịch dựa trên logic nghiệp vụ có thể không có sẵn cho quy trình được lưu trữ cụ thể mà bạn đang gọi.

  • Khả năng gọi một tập hợp các truy vấn tùy ý trong một giao dịch duy nhất. Điều này cũng giúp bạn không phải lo lắng về số lượng giao dịch.

  • Sở thích cá nhân:c # có cấu trúc thanh lịch hơn để khai báo các giao dịch:a using khối. Để so sánh, tôi luôn thấy các giao dịch bên trong các thủ tục được lưu trữ trở nên phức tạp khi chuyển sang rollback / commit.

Điều này có thể có hoặc không có vấn đề tùy thuộc vào số lượng giao dịch đang được mở (không rõ đây là một công việc đơn lẻ hay một thủ tục được chạy với tính đồng thời cao). Tôi khuyên bạn nên xem những ổ khóa đang được đặt trên đồ vật nào và những ổ khóa đó được giữ trong bao lâu.

Hãy nhớ rằng xác thực có thể nên Khóa; điều gì sẽ xảy ra nếu dữ liệu thay đổi giữa thời điểm bạn xác thực nó và thời điểm hành động xảy ra?

Nếu nó vấn đề, bạn có thể chia thủ tục vi phạm thành hai thủ tục và gọi một thủ tục từ bên ngoài TransactionScope .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt về cách xử lý khoảng trắng giữa Oracle và SQL Server

  2. 5 công cụ tạo mô hình dữ liệu hàng đầu cho SQL Server

  3. Có StartsWith hoặc Chứa trong t sql với các biến không?

  4. Khắc phục sự cố Máy chủ SQL Luôn ở trên Nhóm khả dụng

  5. Máy chủ so với Nguồn dữ liệu trong chuỗi kết nối