这可能是一个奇怪的问题。我已经搜索了这个问题,甚至找不到我想要的术语。
我正在学习QUERY OPTIMATION in DB
,现在正在计算费用。我了解了归类为
我对SNLJ和BONLJ表示满意,但找不到有关 PONLJ 的文章或教程。我对 PONLJ 唯一了解的是
对于从R读取的每个页面,获取S的所有页面,并写出匹配的元组对,其中r在R页面中,S在S页面中。费用= M + M * N
我需要对此进行更多说明。很好地描述答案。
谢谢。
答案 0 :(得分:1)
发表评论的时间有点长。
我不确定这是什么困惑-也就是说,您的简短描述对我来说有意义。
嵌套循环联接的想法是,代码在一个表中的行之间循环。然后,对于一个表中的每一行,它通过比较每对可能的行对在第二张表中查找匹配的行。
通常,您可以通过逐行循环行来理解这一点。但是事实是数据库以其他单位存储行,尤其是在页面上。
PONLJ遍历表中的每个页面,然后遍历该页面上的所有行。尽管这听起来像两个循环,但实际上它仅遍历所有行一次。
在第二张桌子上重复相同的过程。