这是我的查询示例。
select *
from employee as a
where 1=(select count(distinct(b.salary))
from employee as b
where a.salary<b.salary)
我想知道我的外部查询和内部查询运行了多少次。是否有任何方法来处理查询中的计数器?在visual studio中,我们可以在循环的每次迭代中观察任何变量的值,同样可以在任何步骤看到外部和内部查询的结果吗?有没有用于此目的的工具?任何方法?
先谢谢。
答案 0 :(得分:0)
执行此查询时,请获取实际的执行计划。它会告诉你执行的重要性。以下是如何获取它:How do I obtain a Query Execution Plan?
不可能单步执行SQL代码。 SQL的整个想法是将你想要的结果和 结果取出之间分开。因此,如何执行SQL代码可能看起来与您的查询非常相似。 SQL代码的每个部分都有多个操作,它们执行相同的操作,但根据数据执行不同的操作。
例如,如果您的员工没有任何索引,那么您的查询将是一个带有表扫描的嵌套循环。如果表很大,则可能只有一个表扫描带有排序和表假脱机,以重用该排序的临时表。如果你有一个工资指数,那么就会有一个带有一堆索引扫描的嵌套循环。
总之,获取实际执行计划以查看实际正在做什么的SQL Server。