我有这样的想法(不知道好坏)。
我有实用程序,它通过 reglament 连接到 SQL Server 并将一些数据获取到应用程序。数据很简单(2 个 varchar 文本属性),但数据数量约为 300 万行。因此,我的应用程序非常频繁地使用网络。
我可以通过 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"]
};
}
}
}
}
让服务器缓冲数据或保持打开的查询更长时间实际上可以是显着增加加载到服务器上,但最终执行您要做的事情的唯一方法是对查询应用“分页”,并访问连续页面中的数据,可能在页面之间有暂停。页面可能仍然很大 - 例如 100k。您可以相对轻松地实现这一点OFFSET
/FETCH
在 SQL Server 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)