ADO làm việc trên mơ hình Client/Server, Client sẽ kết nối liên tục với Server trong suốt quá trình làm việc. Điều này làm cho Server trở nên Nạp chồng khi cĩ quá nhiều Client kết nối.
ADO.NET sử dụng dữ liệu ở dạng disconnected data:
Client tạo kết nối với Server để lấy dữ liệu
Server gửi dữ liệu về cho Client
Client ngắt kết nối với Server
Khi cần cập nhật dữ liệu, kết nối giữa Client và Server được phục hồi
Với cơ chế disconnected data, thời gian kết nối giữa Client và Server khơng cịn lâu dài như trước, Server cĩ khả năng phục vụ nhiều Client hơn hẳn so với cơ chế của ADO trước đây.
Cơ chế disconnected data cĩ hai điểm đáng chú ý:
Dữ liệu sẽ khơng phản ánh kịp thời những thay đổi dữ liệu trong một hệ thống Client/Server với nhiều người dùng?
Trên thực tế, người dùng khi làm việc với các hệ thống phân tán hiểu và chấp nhận dữ liệu cĩ một độ trễ và sai lệch nhỏ, khơng đáng kể (tương tự như các ứng dụng Web).
ADO trước đây nếu sử dụng RecordSet ở dạng OpenStatic thì cũng khơng tốt hơn cơ chế
disconnected data là bao.
Thời gian cho một lần tạo kết nối giữa Client và Server là khá lớn, việc ngắt kết nối sau đĩ tạo lại kết nối để cập nhật dữ liệu sẽ chậm?
Vấn đề này được ADO.NET giải quyết khá đơn giản bằng cơ chế connection pooling, thơng tin
về mối kết nối vẫn cịn được lưu giữ ở Server trong khoảng thời gian nhất định và khi Server
cịn đủ tài nguyên, mỗi khi Client cần kết nối lại với Server, thơng tin kết nối được lấy ra từ
connection pool nên tốc độ khơng bị ảnh hưởng.