對于使用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運作性能。