相关疑难解决方法(0)

SELECT 语句中的 OPTION FAST 有什么作用?

我已经对OPTION (FAST XXX)查询提示在SELECT语句中的作用做了一些挖掘,但我仍然对此感到困惑。根据 MSDN:

指定为快速检索第一个 number_rows 优化查询。这是一个非负整数。返回第一个 number_rows 后,查询将继续执行并生成其完整结果集。

对我来说这没有多大意义,但基本上查询可以非常快地获得前 XXX 行,然后以正常速度获得其余行?

让我想到这一点的 Microsoft Dynamics 查询是:

select pjproj.project,pjproj.project_desc,pjproj.customer,pjproj.cpnyid
from pjproj WITH (NOLOCK)
where project like  '%'
order by project OPTION(FAST 500)
Run Code Online (Sandbox Code Playgroud)

谁能准确解释这个查询提示在做什么以及它比不使用它的优势?

sql-server hints t-sql microsoft-dynamics

34
推荐指数
2
解决办法
4万
查看次数

查询何时“完成”?

设想

我运行一个长而复杂的查询,在 SSMS 中返回 30 多个字段和 77,000 多行。结果到网格。结果都是以文本为主。SSMS 网格在几秒 (3 - 4) 秒后开始填充结果,但查询执行时间为 2 分钟。这 2 分钟的大部分时间都是附加到 SSMS 网格中的结果。

问题)

查询什么时候“完成”?当行开始追加到 SSMS 网格时,它是在前 3 - 4 秒内完成的吗?剩下的 1 分 56 秒只是网格 UI 更新结果吗?如果查询在 3 - 4 秒后“完成”,那么我不应该考虑优化它,对吗?相反,如果查询直到 SSMS 中停止执行(整整两分钟)完成,那么我应该能够考虑优化它?

sql-server ssms

6
推荐指数
2
解决办法
1569
查看次数

在下一次执行开始之前,执行计划的每个成员是否都完整运行?

我正在查看执行计划并从右到左阅读它。

例子:

1<-2<-3<-4
      ^
      |_5
Run Code Online (Sandbox Code Playgroud)

所以4和5是并行执行的。当两者都完全完成时,则 3 完全执行,然后 2 完全运行,然后 1。

这是正确的还是可能存在以下情况:

  1. 3 甚至在 4 和 5 完全完成之前就开始执行。

  2. 2 甚至在 3 完全完成之前就开始执行。

sql-server execution-plan sql-server-2019

1
推荐指数
1
解决办法
160
查看次数