【问题标题】:TSQL Prevent "FAST N" output by defaultTSQL 默认情况下阻止“FAST N”输出
【发布时间】:2013-08-27 17:15:22
【问题描述】:

当我执行 TSQL 查询或默认返回大量记录 (1M+) 的存储过程时,它在查询仍在执行时开始显示结果。

有没有办法防止这种情况并推迟返回结果,直到查询执行完成?

【问题讨论】:

  • 你为什么要这个?可以通过存储在#temp 表中,或者重写查询以获得阻塞运算符,但它会占用服务器内存来存储整个结果集。
  • 我认为这可能会导致我的另一个问题出现问题:stackoverflow.com/questions/18468284/…(也许我错了,但似乎 .NET 代码只能读取“Fast N”结果)

标签: sql-server tsql ssms


【解决方案1】:

如果您在返回的数据集中添加如下列,它几乎肯定无法执行FAST(N)

.., MAX(prevColumn) OVER(PARTITON BY 1) As Dummy, ...

其中prevColumn 是您已经返回的任何其他列,尤其是在它不是索引列的情况下。

【讨论】:

  • 做到了,谢谢。虽然结果证明我的其他问题不需要 :) 但还是谢谢
【解决方案2】:

您可以在 SELECT 中使用 ORDER BY 或 Aggregate 函数将帮助您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多