用于并发数据库访问的IO完成端口

时间:2009-03-10 22:35:14

标签: .net concurrency

我有一个.NET WCF服务,需要一次处理多个客户端请求。

该服务为每个客户端请求进行数据库调用(包括读取和写入)。

IO完成端口是否可用于此代码的数据库访问部分以提高并发性能?他们将如何在这种情况下使用?

2 个答案:

答案 0 :(得分:2)

ADO.NET 2.0支持内部使用IO完成端口的异步命令执行。 (BeginXXX和EndXXX方法)

查看http://msdn.microsoft.com/en-us/library/ms379553(VS.80).aspx

答案 1 :(得分:0)

这取决于您如何进行数据库读写操作。如果您正在使用某种直接套接字或文件输入/输出调用,那么您可以增加可以同时服务的呼叫数量。但是,实际执行数据库读/写操作的时间取决于服务器。

但您很可能是通过ODBC / OLEDB / ADO / ADO.NET访问数据库,在这种情况下,这些库不使用IO完成端口。而且你不能让他们使用IO完成端口。

IO完成端口用于防止线程在等待IO完成时阻​​塞。可以把它想象成异步读/写。