天天看點

Oracle中Driving_site Hint的用法

對于使用DBLINK遠端通路資料庫的SQL,ORACLE可以有兩種選擇:

第一:在Remote資料庫執行該段SQL;

第二:在Local資料庫執行該段SQL;

是以優化政策和思路:

政策:遠端通路,網絡傳輸占很大部分,優化原則,減少網絡傳輸,将小的結果集拉到本地處理;

思路1:可以在遠端資料庫建立視圖,在遠端執行;

思路2:使用DRIVING_SITE将資料拉到本地執行處理;

用法: /+driving_site(table_name)/ : table_name 一般是大表,以該表作為驅動表;

例如如下SQL:

select /*+ driving_site(o) */
 o.column1,
 p.column1
from [email protected]_link o ,table p
where o.ID=p.ID;
           

以上我們可以看出table_1是Remote資料庫表,在的影響下,oracle會把table_2通過remote_link發送到Remote資料庫,在Remote進行連接配接查詢,然後将查詢結果傳回到Local,是以如果table_1是個大的資料table則會減少網絡傳輸,提升SQL運作性能。