
请问在Oracle数据库多表连接时,优化器在生成执行计划时需要考虑哪些因素?
优化器会预估出不同的访问路径(如何从每张表里取数据,全表扫描还是索引扫描)、连接方式(每个表之间如何连接,Nested Loops、Hash Join、Sort Merge)、连接类型、连接顺序下获取最终结果消耗的成本值,并选择预估成本最低的执行计划。
例如:date_dim和lineorder表进行连接,优化器会计算出不同连接方式(Nested Loops join、Hash Join、Sort Merge join),不同连接顺序(date_dim,lineorder或lineorder,date_dim)下costs值,在本例中,Nested Loops连接方式,date_dim,lineorder连接顺序的成本最低。

请问有哪些访问路径?
一:Table Access Paths
Direct Path Reads
Full Table Scans
Table Access by Rowid
In-Memory Tabl
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



