面向页面的嵌套循环连接 - 查询优化
Page Oriented Nested Loop Join - QUERY OPTIMIZATION
这可能是一个奇怪的问题。我用谷歌搜索了这个问题,但我什至找不到我要找的术语。
我正在了解 QUERY OPTIMATION in DB
,现在我正在计算 COST。我了解了嵌套循环连接,它被归类为
- 简单嵌套循环连接 (SNLJ)
- 面向页面的嵌套循环连接 (PONLJ)
- 面向块的嵌套循环连接 (BONLJ)
我对 SNLJ 和 BONLJ 没意见,但我找不到任何关于 PONLJ 的文章或教程。关于 PONLJ 我唯一知道的是
对于从R读取的每一页,获取S的所有页,并写出匹配的元组对,其中r在R页中,S在S页中.成本 = M + M*N
我需要对此进行更多解释。感谢描述清楚的答案。
谢谢。
评论有点长
我不确定混淆是什么 -- 也就是说,您的简短描述对我来说很有意义。
嵌套循环连接的想法是代码在一个 table 中循环遍历行。然后对于一个 table 中的每一行,它通过比较每对可能的行来查找第二个 table 中的匹配行。
通常,您可以通过逐行循环来理解这一点。但事实是,数据库以其他单位存储行,尤其是 页 。
PONLJ 遍历 table 中的每一页,然后遍历该页上的所有行。虽然这听起来像两个循环,但它实际上只遍历所有行一次。
在第二个 table 上重复相同的过程。
这可能是一个奇怪的问题。我用谷歌搜索了这个问题,但我什至找不到我要找的术语。
我正在了解 QUERY OPTIMATION in DB
,现在我正在计算 COST。我了解了嵌套循环连接,它被归类为
- 简单嵌套循环连接 (SNLJ)
- 面向页面的嵌套循环连接 (PONLJ)
- 面向块的嵌套循环连接 (BONLJ)
我对 SNLJ 和 BONLJ 没意见,但我找不到任何关于 PONLJ 的文章或教程。关于 PONLJ 我唯一知道的是
对于从R读取的每一页,获取S的所有页,并写出匹配的元组对,其中r在R页中,S在S页中.成本 = M + M*N
我需要对此进行更多解释。感谢描述清楚的答案。
谢谢。
评论有点长
我不确定混淆是什么 -- 也就是说,您的简短描述对我来说很有意义。
嵌套循环连接的想法是代码在一个 table 中循环遍历行。然后对于一个 table 中的每一行,它通过比较每对可能的行来查找第二个 table 中的匹配行。
通常,您可以通过逐行循环来理解这一点。但事实是,数据库以其他单位存储行,尤其是 页 。
PONLJ 遍历 table 中的每一页,然后遍历该页上的所有行。虽然这听起来像两个循环,但它实际上只遍历所有行一次。
在第二个 table 上重复相同的过程。