我正在尝试根据 NDPR(磁盘页面读取次数)计算(最有效的)块嵌套循环连接的成本。假设您有以下形式的查询:
SELECT COUNT(*)
FROM county JOIN mcd
ON count.state_code = mcd.state_code
AND county.fips_code = mcd.fips_code
WHERE county.state_code = @NO
其中@NO 被替换为每次执行查询时的状态代码。
我知道我可以使用以下方法得出 NPDR:NPDR(R x S) = |Pages(R)| + Pages(R) / B - 2 . |P ages(S)|
(其中较小的表用作外部以产生更少的页面读取。Ergo:R = 县,S = mcd)。
我也知道页面大小 = 2048 字节
Pointer = 8 byte
Num. rows in mcd table = 35298
Num. rows in county table = 3141
Free memory buffer pages B = 100
Pages(X) = (rowsize)(numrows) / pagesize
我想弄清楚的是“ WHERE county.state_code = @NO
”如何影响我的成本?
谢谢你的时间。