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

Chèn Cập nhật proc được lưu trữ trên SQL Server

Giả định của bạn là đúng, đây là cách tối ưu để làm điều đó và nó được gọi là upert / merge.

Tầm quan trọng của UPSERT - từ sqlservercentral.com:

Đối với mỗi bản cập nhật trong trường hợp được đề cập ở trên, chúng tôi sẽ xóa chỉ đọc một bổ sung khỏi bảng nếu chúng tôi sử dụng UPSERT thay vì EXISTS. Thật không may cho một Phụ trang, cả hai phương thứcUPSERT và IF EXISTS đều sử dụng cùng số lần đọc trên bảng. được thực hiện khi có lý do rất xác đáng để biện minh cho I / O bổ sung. Cách tối ưu hóa để thực hiện mọi thứ là đảm bảo rằng bạn có ít lượt đọc nhất có thể trên DB.

Chiến lược tốt nhất là cố gắng cập nhật. Nếu không có hàng nào bị ảnh hưởng bởi bản cập nhật thì hãy chèn. Trong hầu hết các trường hợp, hàng sẽ tồn tại và chỉ một I / O sẽ được yêu cầu.

Chỉnh sửa :Vui lòng xem câu trả lời này và bài đăng trên blog được liên kết để tìm hiểu về các vấn đề với mẫu này và cách làm cho nó hoạt động an toàn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 11 Phương pháp hay nhất về chỉ mục SQL Server để cải thiện hiệu suất

  2. Sử dụng Excel VBA để chạy truy vấn SQL

  3. Truy vấn liệt kê số lượng bản ghi trong mỗi bảng trong cơ sở dữ liệu

  4. Chuyển đổi ‘smalldatetime’ thành ‘datetime’ trong SQL Server (Ví dụ T-SQL)

  5. Hiểu kích thước lưu trữ ‘thời gian’ trong SQL Server