Nhược điểm của MARS (Nhiều Bộ Kết quả Hoạt động)?


83

Có ai biết về bất kỳ nhược điểm của MARS (Nhiều Bộ Kết quả Hoạt động) không? Có ai biết lý do tại sao nên tránh sử dụng MARS, chẳng hạn như trường hợp con trỏ hữu ích hơn MARS.

Câu trả lời:


61

Rõ ràng có ít nhất hai nhược điểm (tiềm năng) đã biết (từ (1) blog Nhóm này ):

  1. Rõ ràng điều này có thể gây ra các vấn đề tiềm ẩn đối với bất kỳ hệ thống cũ nào không được thiết kế để chạy dựa trên thiết kế hỗ trợ MARS - "mã hiện tại được tối ưu hóa để chạy trong thế giới không phải MARS có thể cho thấy hiệu suất giảm nhẹ khi chạy không được sửa đổi với MARS"

  2. “Với MARS, bạn có thể gửi nhiều lô nhiều câu lệnh tới máy chủ. Máy chủ sẽ xen kẽ việc thực thi các lô như vậy, có nghĩa là nếu các lô thay đổi trạng thái máy chủ thông qua các câu lệnh SET hoặc USE, hoặc sử dụng các câu lệnh quản lý giao dịch TSQL (BEGIN TRAN, COMMIT, ROLLBACK), cả bạn và máy chủ đều có thể bị nhầm lẫn về mục đích thực sự của bạn là gì. "

Tôi vẫn chưa thử một thiết kế hỗ trợ MARS, nhưng tôi đang tiến rất gần đến việc làm như vậy cho dự án hiện tại của mình. Chúng tôi gặp phải một vấn đề nhỏ với các hoạt động truy vấn cạnh tranh (và đôi khi phụ thuộc) (như tải dữ liệu cấu hình chậm từ cùng một cơ sở dữ liệu mà một tập bản ghi đang hoạt động đang thực thi).

Có thêm thông tin trên trang MSDN (2) tại đây

[(1) http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx ]
[(2)http://msdn.microsoft.com/en-us/library/ms131686.aspx ]


3
Trước khi áp dụng giải pháp tuyệt vời @RobS, tôi sẽ đọc bài viết này trước để đảm bảo rằng bạn không thể giải quyết vấn đề này bằng giải pháp sau: devproconnections.com/development/… HOẶC thêm .ToList () vào cuối cuộc gọi DB của bạn, đã giải quyết vấn đề của tôi. Btw, Cảm ơn RobS vì những lời khuyên tuyệt vời, MARS sẽ có ích trong tương lai. :)
Termato

6
  • Nó tốn nhiều tài nguyên máy chủ hơn một chút so với thực hiện từng kết nối một.
  • Bạn phải chạy SQL Server 2005 trở lên. Vì vậy, đó có thể là một vấn đề trong môi trường kế thừa (ack!).

bạn cna sử dụng SqlTransaction tốt.
Mladen Prajdic 17/12/08

17
"Tài nguyên máy chủ nhiều hơn một chút" là bao nhiêu? Bạn có thể ước tính nó về bộ nhớ hoặc CPU không? Tôi quan tâm đến điều này chủ yếu bởi vì tôi đang ở trong môi trường Azure nơi tài nguyên tỷ lệ thuận với chi phí của máy chủ.
Mathias Lykkegaard Lorenzen

1
@MathiasLykkegaardLorenzen Bạn đã bao giờ khám phá ra câu trả lời cho câu hỏi của mình chưa?
Sinjai

4

tùy thuộc vào cái gì? không có nhược điểm thực sự.

họ không hỗ trợ Điểm lưu giao dịch. nhưng tôi không nghĩ đây là một bất lợi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.