Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不降低服务器/程序速度的情况下从sql检索批量数据_C#_Sql_Sql Server 2008 - Fatal编程技术网

C# 如何在不降低服务器/程序速度的情况下从sql检索批量数据

C# 如何在不降低服务器/程序速度的情况下从sql检索批量数据,c#,sql,sql-server-2008,C#,Sql,Sql Server 2008,我有一个程序,它将根据特定的日期范围从sql检索数据。。问题是,当日期范围设置为一年或更大时,数据加载速度太慢,有时程序将无法响应。有没有办法避免这种情况?您可以使用BackgroundWorker组件在后台线程中加载数据 这仍然需要时间,但程序不会被冻结 或者,您可以修改程序以加载较少的数据。 例如,您可以将使用数据的逻辑移动到服务器上的存储过程。另一个选项是防止用户选择如此大的日期范围 这可能看起来有限制,但通常当用户看到10000条单独的记录时,他们会意识到他们需要使查询更加具体。检索大型

我有一个程序,它将根据特定的日期范围从sql检索数据。。问题是,当日期范围设置为一年或更大时,数据加载速度太慢,有时程序将无法响应。有没有办法避免这种情况?

您可以使用BackgroundWorker组件在后台线程中加载数据

这仍然需要时间,但程序不会被冻结

或者,您可以修改程序以加载较少的数据。

例如,您可以将使用数据的逻辑移动到服务器上的存储过程。

另一个选项是防止用户选择如此大的日期范围


这可能看起来有限制,但通常当用户看到10000条单独的记录时,他们会意识到他们需要使查询更加具体。检索大型数据集所需的时间只会浪费服务器、网络和用户的时间。

一年有多少数据?你的桌子上有索引吗?您的查询是什么样子的?需要更多信息:它是同步的吗?有多少数据回来了?SQL查询是快速的,还是挂在数据库中?甚至可以批处理这些数据吗?只带回前100条记录,然后根据需要检索其他记录,这是否可以接受?