0

这是我的查询示例。

select *
from employee as a
where 1=(select count(distinct(b.salary))
from employee as b
where a.salary<b.salary)

我想知道我的外部查询和内部查询运行了多少次。有什么方法可以处理查询中的计数器吗?就像在 Visual Studio 中一样,我们可以在循环的每次迭代中观察任何变量的值,同样我们可以在任何步骤中看到外部和内部查询的结果吗?有没有用于此目的的工具?有什么方法吗?

提前致谢。

4

1 回答 1

0

执行此查询时,获取实际的执行计划。它会告诉你执行次数是多少。获取方法如下:如何获取查询执行计划?

单步执行 SQL 代码是不可能的。SQL 的整个想法是在您想要的结果和获取结果的方式之间进行分离。因此, SQL 代码的执行方式可能与您的查询非常相似。SQL 代码的每个部分都有多个操作,它们执行相同的操作,但根据数据执行不同的操作。

例如,如果您没有任何关于员工的索引,那么您的查询将是一个带有表扫描的嵌套循环。如果表很大,则可能只有一次表扫描带有排序和表假脱机以重用已排序的临时表。如果你有一个关于薪水的索引,那么就会有一个带有一堆索引扫描的嵌套循环。

总之,获取实际执行计划以查看 SQL Server实际在做什么。

于 2013-06-29T16:27:01.463 回答