.net – 如何将数据从SQL Server提取到SqlDataReader工作?

前端之家收集整理的这篇文章主要介绍了.net – 如何将数据从SQL Server提取到SqlDataReader工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我打电话给这个代码
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.

猜你在找的MsSQL相关文章