以下是针对以下查询的简单执行计划。了解执行计划中的执行次数
查询:
SELECT TOP (25) orderid, custid, empid, shipperid, orderdate, filler
FROM dbo.Orders
ORDER BY orderid;
执行计划:
我的问题是如何使执行数感
下面是执行的所有操作员的数量
个嵌套循环:
估计被处决的人数:1
索引扫描:1
实际执行的次数
估计被处决的人数:1 实际执行的次数:1
查询关键字: 预计执行数:25 实际执行数量:25
个我的问题是 1.为什么是只表示1执行计数
2.Index扫描也显示出只有一个执行计数嵌套循环,但它在人们得到25行execution.are这些行存储在缓存行集或一些缓存?.Will嵌套循环取一排从缓存中,然后调用键查找25次,每行
下面是从伊茨克奔甘
的解释。例如,如何索引扫描迭代知道停止在25行之后,如果顶部迭代器告诉它停止在计划的后面出现?答案是内部API调用从根节点(在我们的例子中是SELECT迭代器)开始。此根节点调用Top迭代器。 Top迭代器调用一个方法25次,它要求嵌套循环迭代器中的一行。接下来,嵌套循环迭代器会调用25次要求索引扫描迭代器中的一行的方法。因此,索引扫描迭代器不会超出它扫描的第25行。总之,虽然它通常是更直观的跟踪数据流量为了解释该计划
但为什么执行计数将只显示1,请让我知道,如果我错过任何thing.Attached是执行计划
更新(一月2017):
我曾问堆栈一些什么类似的问题overflow..please看到这个答案对同一详情..
https://dba.stackexchange.com/questions/134172/set-statistics-i-o-for-nested-loops
它做25键查找,但这不是计数多少次嵌套循环操作本身正在执行---请你详细说明这一点..到第二点,我指的是行集缓存 – TheGameiswar
@TheGameiswar它是一个嵌套循环,它执行25次键查找 - 这就是嵌套循环的作用,它从第一个数据集中获取行,并为每个行调用第二个循环。 –