Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
.net HTTPHandler的几个大选择还是多个小选择(都是串行的)?_.net_Sql Server_Database Connection_Httphandler_Large Data - Fatal编程技术网

.net HTTPHandler的几个大选择还是多个小选择(都是串行的)?

.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表时使用,打开和关闭每个连

我正在尝试从数据库导出大型excel文件(客户端请求)。我目前使用两个select从两个表中获取数据,并将它们存储在两个sqldataset中。在文件开始上传之前,我有一个延迟,因为每个表最多提供10万行

我已经关闭了httphandler中的outputbuffer,并将第一个表中的每一行导出为自己的vb.net html表(第二个数据集中的依赖行)。一旦上传开始,速度非常快,但客户端仍然希望消除这种延迟

我在想,我可以将两个大选择分解为许多小选择,以便在构建html表时使用,打开和关闭每个连接

sql server可以处理吗

缺点是什么

我到处找了,什么也找不到。非常感谢

限制


第二个表依赖于第一个表,因此我可以对所有内容点击它一次并循环,或者对第一个表的每一行执行多次…对吗?…

忽略我以前的答案。我很困惑

我在这里看到两种可能性:

  • 你的查询很慢
  • 您正在将查询结果转换为内存中的集合(人们通常在完全不需要的地方执行
    .ToList()

  • 在这两种情况下,我们都需要看到您的代码。我可以告诉您的一件事是,在子集查询上拆分查询可能会降低您的速度。

    您能更详细地介绍一下sqldataset和datareader之间的区别吗?如果datareader没有保存与sqldataset相同的信息,它将如何读取?多谢各位!数据读取器(
    SqlDataReader
    在您的例子中)将逐个将记录加载到内存中,其中as数据集是查询中所有内容的缓存。这个想法是为了消除不必要的缓冲。请看@JoeCoderGuy实际上我刚刚意识到您可能在谈论哪个(如果使用正确的话)将提供相同类型的流式访问,所以我的回答是不正确的。请显示一些代码,以便我可以看到问题所在。这两个代码不是都保存在内存中吗?我想这就是造成延误的原因。它正在从sql server向.net加载超过100MB的数据。我认为提高速度的最佳方法是将其分解为单独的查询,但我不知道sql server是否能够处理遇到rapid fire的200000个串行连接。也找不到文档。谢谢大家!@JoeCoderGuy“不是都被记住了吗?”不一定。就像我说的,你需要展示你的代码让我做出更好的判断。