2011-09-05 18 views
9

thể trùng lặp:
Disadvantages of MARS (Multiple Active Result Sets)?Nhược điểm của việc sử dụng MARS (nhiều bộ kết quả hoạt động)

Tôi đang phát triển một ứng dụng như vậy mà tôi phải sử dụng nhiều DataReaders cùng một lúc. Khi tôi nói Nhiều datareaders tôi có nghĩa là DataReaders NHIỀU ... sẽ có một vài yêu cầu cùng một lúc. (Cái gì đó xung quanh 10-50 trở lên)

Vì vậy, một kịch bản mà tôi đi qua là sử dụng các chuỗi kết nối khác nhau .. nhưng thực hiện điều đó tôi cảm thấy khó xử !!!

Một phương pháp khác là sử dụng MARS mà tôi thấy nó khá tốt. nhưng nghi ngờ của tôi là tôi cần phải xem xét hoặc thực hiện bất kỳ biện pháp phòng ngừa khi tôi thực hiện nó hoặc là một cái gì đó luẩn quẩn đang chờ tôi xảy ra :-)

từ nghiên cứu được gọi là những gì tôi có thể tìm thấy là bằng cách sử dụng MARS máy chủ tạo dữ liệu nhanh, vì vậy ứng dụng khách phải nhận dữ liệu ở cùng một tốc độ mà nó đi vào. nếu không bộ đệm lưu trữ dữ liệu sẽ được lấp đầy dẫn đến việc xử lý dừng lại và sẽ chỉ được kích hoạt khi bộ đệm bị trống.

tôi bị lạc ở đâu đó quanh đây ....

Ngoài ra tôi đang sử dụng chỉ Sele báo cáo ct chỉ cho việc tái kiểm tra này ..

vì vậy câu hỏi của tôi là có bất kỳ nhược điểm nào khi sử dụng chúng? bao nhiêu dữ liệu có thể được lưu trữ trong bộ đệm dữ liệu máy chủ sao cho quá trình xử lý sẽ không dừng lại ??

+1

Câu hỏi của bạn là gì? (Cái gì đó kết thúc bằng một dấu hỏi, nếu điều đó giúp bạn đặt nó thành lời) –

+0

Bạn cũng có thể định lượng "NHIỀU NGƯỜI ĐĂNG KÝ". Đặt nó bằng chữ in hoa không làm cho nó thành một con số. – Tony

+0

@Johnstone => anh ấy hoàn toàn quên kết thúc bằng một câu hỏi – Manek

Trả lời

1

Tôi đề nghị bạn sử dụng nhiều kết nối, nếu nó thực sự cần thiết để đọc từ 100 bộ dữ liệu cùng một lúc. Tôi không thể thấy lý do tại sao bạn cần phải có nhiều bộ dữ liệu hoạt động trên một kết nối duy nhất.

Có nhiều khả năng truy vấn hoặc nhiệm vụ bạn đang cố gắng đạt được có thể được thực hiện mà không cần phải thực hiện thao tác song song lớn này. Nếu bạn có thể cụ thể hơn với một số chi tiết có lẽ chúng tôi có thể làm việc ra một vài gợi ý thay thế tốt.

+0

@Johnstone => tôi đã cố gắng rất nhiều để tối ưu hóa ở phía truy vấn và bây giờ tôi đang tiến lên phía trước với MARS. Nó là một cái gì đó giống như chúng tôi nhận được một danh sách từ một TableA và mỗi hàng trong TableA sẽ lấy danh sách từ TableB và mỗi hàng trong TableB sẽ phải lấy một danh sách từ TableC và như vậy. Phew !! tôi biết rằng điều này nghe có vẻ kỳ lạ nhưng dù sao thì nhờ tải cho bạn thời gian ở đây. tôi chỉ muốn biết về dữ liệu có thể được lưu trữ trong bộ đệm dữ liệu. – Manek

+1

Điều đó nghe có vẻ giống như những gì một kết nối. Có khả năng bạn có thể làm những gì bạn muốn với một truy vấn duy nhất và nó sẽ ở xa, nhanh hơn rất nhiều so với những gì bạn đang làm. –

+0

Ví dụ: 'SELECT * TỪ TblA INNER THAM GIA TblB ON X = Y' cho tất cả các hàng từ' TblA', và đối với mỗi hàng trong 'TblB' trong đó các tiêu chuẩn' X = Y' được đáp ứng, một danh sách các hàng từ ' TblB'. –

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