.net – 如何将数据从SQL Server提取到SqlDataReader工作?
发布时间:2020-12-12 16:36:11 所属栏目:MsSql教程 来源:网络整理
导读:当我打电话给这个代码: using (var connection = new SqlConnection(connectionString)){ var command = new SqlCommand("SELECT * FROM Table",connection); connection.Open(); using (var reader = command.ExecuteReader()) { while(reader.Read()) { //
当我打电话给这个代码:
using (var connection = new SqlConnection(connectionString)) { var command = new SqlCommand("SELECT * FROM Table",connection); connection.Open(); using (var reader = command.ExecuteReader()) { while(reader.Read()) { // Do something here } } } 内部发生什么这在网络层面如何工作?它会为每次调用Read或者是在内部执行任何批量读取来创建数据库的新的往返行程吗? 我在问,因为我只是读ODP.NET在OracleCommand和OracleDataReader中提供了FetchSize属性,我明白为定义每一次往返数据库应该预先载入多少条记录.我不知道SQL Server是否以类似的方式工作,如果有一些类似的行为可以在某个地方进行配置.我在SqlCommand,SqlDataReader或CommandBehavior中没有找到任何这样的配置. 解决方法数据从sql server流传输到SqlConnection.PacketSize属性大小的数据包中的客户端.如果您的客户端无法快速读取结果,网卡上的缓冲区将被填满,协议会检测到这一点,并停止接收,从而使得sql server的网卡发送缓冲区已满,并停止发送任何和所有数据.如果你想下到protocl级别,然后查看 TDS protcol.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |