色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何確定oracle驅動表

江奕云2年前13瀏覽0評論

如何確定oracle驅動表?

Oracle要選擇驅動表,需要明確表的連接方式,針對不同的連接方式,驅動表的選擇邏輯有差異:

一:NESTED LOOPS(嵌套循環)

針對NL的驅動表,是執行計劃中離NESTED LOOPS最近的表為驅動表。如下圖

通過上圖,可以看到EMP是驅動表。

NL下,驅動表選擇的是兩個關聯表中返回行數最少的那個。

二:HASH JOIN(哈希連接)

針對HJ的驅動表,是執行計劃中離HASH JOIN最近的表為驅動表。如下圖

上圖可以看到,DEPT離HASH JOIN關鍵字最近,表示DEPT是驅動表。

HJ下,同樣是選擇小表作為驅動表,但是這里的小表不同于NL的行數少,而是指的是 行數*列寬度。

注:要想讓oracle選擇好正確的驅動表,選擇好正確的執行計劃,必須要確保Oracle數據庫中表的統計信息是準確的。針對某個具體的Sql如何確定引用表的統計信息是否準確呢?可以通過如下腳本來核實。

select owner, table_name name, object_type, stale_stats, last_analyzed

from dba_tab_statistics

where table_name in ('表名')

and owner = '表的所有者';

希望對題主有所幫助。