散列连接检索首行的成本,通常比嵌套循环连接要高。 使用散列连接时,检索任何行之前数据库服务器都必须建立散列表。 然而,在某些情况下,如果数据库服务器使用散列连接,会缩短总查询时间。
QUERY: ------ SELECT * FROM tab1,tab2 WHERE tab1.col1 = tab2.col1 Estimated Cost: 125 Estimated # of Rows Returned: 510 1) lsuto.tab2: SEQUENTIAL SCAN 2) lsuto.tab1: SEQUENTIAL SCAN DYNAMIC HASH JOIN Dynamic Hash Filters: lsuto.tab2.col1 = lsuto.tab1.col1
QUERY: (FIRST_ROWS OPTIMIZATION) ------ SELECT * FROM tab1,tab2 WHERE tab1.col1 = tab2.col1 Estimated Cost: 145 Estimated # of Rows Returned: 510 1) lsuto.tab1: SEQUENTIAL SCAN 2) lsuto.tab2: INDEX PATH (1) Index Keys: col1 Lower Index Filter: lsuto.tab2.col1 = lsuto.tab1.col1 NESTED LOOP JOIN