使用DBLINK遠程訪問數據庫的優化策略和思路:
策略:遠程訪問,網絡傳輸佔很大部分,優化原則,減少網絡傳輸,將小的結果集拉到本地處理;
思路1:在遠端建立視圖;
思路2:使用DRIVING_SITE將數據拉到本地處理;
出現這種執行計劃,主要原因是使用了db link,要想看到執行計劃,可以加 hint,如:
/+remote_mapping(db_link)/或/+driving_site(table_name)/
用法: /+driving_site(table_name)/ : table_name 一般是大表!
select /+driving_site(main)/ a.,b. from A.a main@BigTableDB,B.b minor where main.id=minor.id and .......
這樣一來就可以避免大表所在庫的全表掃描,查詢速度將成級數級提高。
解釋:
當指定 /+driving_site(main)/ 時, oracle將會從minor表獲取全部數據到main表所在的數據庫來進行關聯運算.(索引起作用,速度快)
若指定 /+driving_site(minor)/ 時, oracle將會從main表獲取全部數據到minor表所在的數據庫來進行關聯運算.(索引失敗,全表掃描)
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/30345407/viewspace-2150410/,如需轉載,請註明出處,否則將追究法律責任。