处理大型 SQL 选择查询/读取块中的 SQL 数据

2023-11-21

我正在使用.Net 4.0 和 SQL Server 2008 R2。

我正在运行一个大型 SQL 选择查询,它返回数百万个结果,并且需要很长时间才能完全运行。

有谁知道如何只读取查询返回的部分结果,而不必等待整个查询完成?

换句话说,我想在查询仍在运行并获取下一个结果的同时读取前 10,000 个记录块。


这部分取决于查询本身是否是流式的,或者是否在临时表中进行大量工作then(最后)开始返回数据。在第二种情况下,除了重写查询之外,您不能做太多事情;然而,在第一种情况下,迭代器块通常会有所帮助,即

public IEnumerable<Foo> GetData() {
     // not shown; building command etc
     using(var reader = cmd.ExecuteReader()) {
         while(reader.Read()) {
             Foo foo = // not shown; materialize Foo from reader
             yield return foo;
         }
     }
}

现在这是一个流式迭代器 - 您可以foreach它会从传入的 TDS 数据中实时检索记录,而无需先缓冲所有数据。

如果您(也许是明智的)不想编写自己的物化代码,有一些工具可以为您完成此操作 - 例如,LINQ-to-SQLExecuteQuery<T>(tsql, args)会无痛地完成上述操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理大型 SQL 选择查询/读取块中的 SQL 数据 的相关文章

随机推荐

  • 在 SQLAlchemy 中映射大量相似的表

    我有许多 2000 个位置的时间序列数据 每个时间序列都有数百万行 我想将它们存储在 Postgres 数据库中 我当前的方法是为每个位置时间序列建立一个表 以及一个存储每个位置信息 坐标 海拔等 的元表 我正在使用 Python SQLA
  • 使用什么转换属性进行变换?

    我不确定这是否是正确的方法 但我想旋转一个元素 而且我知道transform rotate 90deg transition property all会起作用 但我不想过渡all的转变 What transition property我应该
  • 我的应用程序的 Facebook 故事:无法生成故事

    在我的 Facebook 应用程序的 Open Graph 仪表板中 在使用标准对象创建自定义或故事后 我的故事出现错误 显示 无法生成故事 因此 在 facebookdeveloper apps myapp story openGraph
  • 当解决方案具有多个 Web 应用程序时,TFS 2010 + MSDeploy

    我有两个解决方案 SolutionA sln WebApplication1 csproj SolutionB sln WebApplication1 csproj WebApplication2 csproj 我还有两个 TFS 2010
  • 以编程方式在表变量中设置身份种子

    我需要创建一个带有标识种子的表变量 该标识种子以另一个表中字段的最大值开头 我试过这个 DECLARE IdentitySeed int SET IdentitySeed SELECT MAX HHRecId 1 FROM xxx DECL
  • 推送通知代码执行(强制退出应用程序)

    我想知道像 Whatsapp 这样的应用程序如何能够向消息的发件人提供送达收据 双绿色支票 我发现 即使您强制退出 Whatsapp 使用应用程序任务切换器并将应用程序滑开 发件人仍然会在手机收到推送通知时收到送达收据 双绿色勾号 显然 他
  • 是否可以从 JavaDoc 创建 Java 类?

    问题是 目前我的团队为一家供应商工作 该供应商为我们提供了他们库中的大量 JavaDoc 规范 但没有提供带有存根或实现的 jar 文件 我们已经与他们交谈过 但他们只会在 2 到 3 周内提供 jar 文件 我不想等到这个时候才开始我们的
  • SQL:从全名字段中解析名字、中间名和姓氏

    如何使用 SQL 从全名字段中解析名字 中间名和姓氏 我需要尝试匹配与全名不直接匹配的名称 我希望能够将全名字段分解为名字 中间名和姓氏 数据不包含任何前缀或后缀 中间名是可选的 数据格式为 First Middle Last 我对一些实用
  • 如何在项目中导入Angular Material?

    我已经安装了 Angular Material Design 现在我尝试将其添加到app module ts file import MaterialModule from angular material 我应该在部分中确定什么 impo
  • 从 websocket 监听器发出全局事件

    我想为一个项目做出贡献 它是用 Vue 编写的 而我是 Vue 的初学者 我有两个组件 Setup and MainApp 两者都需要根据来自 websocket 的不同消息来更新某些状态 有些 websocket 消息会影响前者 有些则影
  • 如何获取实际的监视器名称?如分辨率对话框中所示

    我正在尝试获取系统上监视器的友好名称 我正在使用 C 我努力了Screen 这只是给了我 DisplayXX 我也尝试过Win32 DesktopMonitor and EnumDisplayDevices 它们都给了我以下的变体 Disp
  • pycharm 和子进程 - 在控制台中有效的内容在 Pycharm 中无效

    Pycharm 的解释器似乎已经停止理解我的一些控制台命令 它不断识别默认的 shell 命令 但不识别已安装的实用程序 例如 subprocess模块理解touch命令但不理解heroku命令 有趣的是 当我使用相同的解释器 来自相同的
  • 如何获取乌龟的位置?

    如何在Python中找到乌龟的坐标 例如 如果乌龟位于 200 300 我如何检索该位置 如Python文档所示 turtle pos 以 2D 向量形式返回海龟的当前位置 x y
  • 拼写错误的 Ace 编辑器选项

    我已经为 PHP 实现了 Ace 编辑器设置 工作正常 但是当我尝试使用 Ace 的 API 设置其他选项时 我在控制台中收到警告 这是用于初始化编辑器并尝试设置选项的代码 ace require ace ext language tool
  • 按因子计算组的平均值

    有没有办法可以改进或更简单地做到这一点 means by lt function data INDEX b lt by data INDEX function d apply d 2 mean return structure t matr
  • 在锁定的 Windows 10 计算机上的后台进程中将文本放入剪贴板

    我正在构建一个进程 到目前为止 我已在 Net Framework 4 7 2 上尝试过 VBA Python 和 C 该进程需要将一些字符串放入 Windows 10 计算机锁定屏幕后面的剪贴板上 为了测试 我将其减少到只有两个命令 伪代
  • 如何在 SQL Server 上执行 SQL 脚本期间显示某些内容?

    例如 我有一个数据库升级脚本 用于向数据库表添加列 它看起来有点像这样 IF NOT Exists SELECT FROM SysColumns sc SysObjects so WHERE sc Name dealer number AN
  • 帧指针有什么优点?

    我们正在学习 MIPS 汇编器 我想这个问题可以适用于一般的汇编 老师向我们介绍了帧指针 如果我有一个函数序言 我曾经直接执行堆栈指针 addiu sp sp 8 alloc 2 words in the stack sw s0 4 sp
  • Android Studio 和 MonkeyTalk?

    有人用 Android Studio 成功设置 MonkeyTalk 吗 我目前的主要问题是我没有找到将 java 编译器设置为aspectj的方法 我相信在 custom rules xml 中有一些方法可以做到这一点 但我还没有看到如何
  • 处理大型 SQL 选择查询/读取块中的 SQL 数据

    我正在使用 Net 4 0 和 SQL Server 2008 R2 我正在运行一个大型 SQL 选择查询 它返回数百万个结果 并且需要很长时间才能完全运行 有谁知道如何只读取查询返回的部分结果 而不必等待整个查询完成 换句话说 我想在查询