.net HTTPHandler的几个大选择还是多个小选择(都是串行的)?
我正在尝试从数据库导出大型excel文件(客户端请求)。我目前使用两个select从两个表中获取数据,并将它们存储在两个sqldataset中。在文件开始上传之前,我有一个延迟,因为每个表最多提供10万行 我已经关闭了httphandler中的outputbuffer,并将第一个表中的每一行导出为自己的vb.net html表(第二个数据集中的依赖行)。一旦上传开始,速度非常快,但客户端仍然希望消除这种延迟 我在想,我可以将两个大选择分解为许多小选择,以便在构建html表时使用,打开和关闭每个连接 sql server可以处理吗 缺点是什么 我到处找了,什么也找不到。非常感谢 限制.net HTTPHandler的几个大选择还是多个小选择(都是串行的)?,.net,sql-server,database-connection,httphandler,large-data,.net,Sql Server,Database Connection,Httphandler,Large Data,我正在尝试从数据库导出大型excel文件(客户端请求)。我目前使用两个select从两个表中获取数据,并将它们存储在两个sqldataset中。在文件开始上传之前,我有一个延迟,因为每个表最多提供10万行 我已经关闭了httphandler中的outputbuffer,并将第一个表中的每一行导出为自己的vb.net html表(第二个数据集中的依赖行)。一旦上传开始,速度非常快,但客户端仍然希望消除这种延迟 我在想,我可以将两个大选择分解为许多小选择,以便在构建html表时使用,打开和关闭每个连
第二个表依赖于第一个表,因此我可以对所有内容点击它一次并循环,或者对第一个表的每一行执行多次…对吗?…忽略我以前的答案。我很困惑 我在这里看到两种可能性:
.ToList()
)在这两种情况下,我们都需要看到您的代码。我可以告诉您的一件事是,在子集查询上拆分查询可能会降低您的速度。您能更详细地介绍一下sqldataset和datareader之间的区别吗?如果datareader没有保存与sqldataset相同的信息,它将如何读取?多谢各位!数据读取器(
SqlDataReader
在您的例子中)将逐个将记录加载到内存中,其中as数据集是查询中所有内容的缓存。这个想法是为了消除不必要的缓冲。请看@JoeCoderGuy实际上我刚刚意识到您可能在谈论哪个(如果使用正确的话)将提供相同类型的流式访问,所以我的回答是不正确的。请显示一些代码,以便我可以看到问题所在。这两个代码不是都保存在内存中吗?我想这就是造成延误的原因。它正在从sql server向.net加载超过100MB的数据。我认为提高速度的最佳方法是将其分解为单独的查询,但我不知道sql server是否能够处理遇到rapid fire的200000个串行连接。也找不到文档。谢谢大家!@JoeCoderGuy“不是都被记住了吗?”不一定。就像我说的,你需要展示你的代码让我做出更好的判断。