SQL DataReader网络使用限制

时间:2017-11-21 10:54:18

标签: c# sql-server datareader

我有这样一个想法(不知道是坏还是好)。 我有实用程序,它通过reglament连接到SQL服务器并将一些数据提取到应用程序。数据很简单(2个varchar文本属性),但数据数量约为3百万行。所以,我的应用程序非常密集地使用网络。 我可以通过SQL DataReader以编程方式减少(限制,限制等)网络带宽使用量吗?让它工作得更慢,但不要强调服务器和客户端。这个想法好吗?如果没有,我必须这样做?

到目前为止,这是代码:

using (SqlConnection con = new SqlConnection("My connection string here"))
{
    con.Open();
    using (SqlCommand command = new SqlCommand(query, con))
    {                        
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                yield return new MyDBObject()
                {                               
                    Date = (DateTime)reader["close_date"],                                
                    JsonResult = (string)reader["json_result"]
                };
            }
        }
    }
}

1 个答案:

答案 0 :(得分:4)

使服务器缓冲区数据或保持打开的查询更长时间实际上可能显着增加服务器上的负载,但最终唯一的方法是执行您之后将要应用的& #34;寻呼"您的查询,并访问连续页面中的数据,可能是页面之间的暂停。页面可能仍然很大 - 例如100k。您可以使用SQL Server中的OFFSET / FETCH相对轻松地实现此目的。