2008-12-17 35 views

Trả lời

46

Có vẻ như ít nhất hai tiếng (tiềm năng) nhược điểm (từ này (1) Team blog):

  1. Rõ ràng điều này có thể gây ra vấn đề tiềm năng cho bất kỳ hệ thống di sản đó không được thiết kế để chạy chống lại một MARS kích hoạt thiết kế - "mã hiện tối ưu hóa để chạy trong thế giới phi-MARS có thể hiển thị một màn trình diễn sự sụt giảm nhẹ khi chạy un-sửa đổi với MARS"

  2. “với MARS bạn có thể gửi nhiều mu lti-statement batches đến máy chủ. Máy chủ sẽ xen kẽ việc thực hiện các lô đó, 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, ví dụ, 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ề những gì ý định thực sự của bạn là.”

tôi chưa thử một MARS kích hoạt thiết kế, nhưng tôi đang đến rất gần với làm như vậy về dự án hiện tại của tôi. Chúng tôi có một vấn đề nhỏ với các hoạt động truy vấn cạnh tranh (và đôi khi phụ thuộc) (giống như dữ liệu cấu hình tải lười ra khỏi cùng một cơ sở dữ liệu mà một recordset đang hoạt động đang thực thi).

Có thêm thông tin trên trang web MSDN (2) here

[(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 đã đọc bài viết này trước để đảm bảo bạn không thể giải quyết vấn đề này bằng giải pháp sau: http://devproconnections.com/development/solving-net-scalability-problem HOẶC thêm .ToList() để kết thúc 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ì lời khuyên tuyệt vời, MARS sẽ có ích trong tương lai. :) – Termato

2

tùy thuộc vào nội dung gì? không có bất lợi thực sự.

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

5
  • Phải mất nhiều tài nguyên máy chủ hơn một lần làm một kết nối tại một thời điểm.
  • 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 di sản (ack!).
+0

bạn cna sử dụng SqlTransaction tốt. –

+11

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

Các vấn đề liên quan