oracle driving site特點簡析

2021-08-22 18:09:09 字數 3786 閱讀 5969

一.準備工作:

先要建立乙個資料庫:orcl_ysy,然後解鎖賬戶,建立dblink

alter

user scott identified by tiger;

alter

user scott account unlock ;

--授予orcl 下的yushaoyang001 dblink 許可權

grant

create

public

database link to yushaoyang001;

grant

drop

public

database link to yushaoyang001;

select * from user_sys_privs where privilege like upper('%database link%') ;

--如果密碼是數字開頭,用「」括起來

--建立dblink

create

public

database link scottlink connect

to scott identified by

"tiger"

using

'orcl_ysy';

--檢視dblink

select * from all_db_links;

drop

public

database link scottlink;

--在orcl_ysy下建立乙個

create

table oracl_sys_temp

asselect * from all_objects;

--insert為乙個大表

insert

into oracl_sys_temp

select * from oracl_sys_temp

-- 3560384

select

count(1) from oracl_sys_temp;

--在yushaoyang001訪問

select * from oracl_sys_temp@scottlink;

會發現產生事務了,此時需要commit或者rollback;

這種分布式事務是為了保持資料的一致性;

規律:當需要的資料都返回了,就不會產生要commit提示,否則就會產生commit提示。

如: select

count(1) from oracl_sys_temp@scottlink;不會出現;

具體參考:

二,開始說明

driving_site這個hint比較特別針對rbo也可以生效的;

driving_site(xx):指定在表xx所在的節點執行;此時xx所在的節點就相當於』本地』了;以此作為參照,另外的表就可看做』遠端』;

這裡有2個庫:乙個orcl的,賬戶為yushaoyang001,乙個庫為orcl_ysy,賬戶為scott,上面建立的dblink就是這個scott賬戶

--在yushaoyang001賬戶下建立表

等價於:

select /*+ driving_site(tt) */tt.* from tab1_temp tt,oracl_sys_temp@scottlink os

where tt.object_id=os.object_id;

可以看到cbo選擇了在本地節點tt執行,即將遠端資料os傳輸到本地,再走hash操作;

此時oracl_sys_temp 有3560384記錄,執行時間為4.585s左右;

此時主要是網路傳輸的消耗;

--現在強制走遠端節點,即把tab1_temp資料傳輸到oracl_sys_temp@scottlink所在節點執行,再返回結果;

select /*+ driving_site(os) */tt.*,os.object_name from tab1_temp tt,oracl_sys_temp@scottlink os

where tt.object_id=os.object_id;

再看乙個問題: driving_site 能不能跟其他hint一起用?

–情況1 在本地節點

可以發現hint已經生效,

但是仔細看,雖然use_nl(tt,os)指定了os作為被驅動表,但是實際來看沒有生效;於是要使用leading強制了

–情況2 指定在遠端節點

此時hint確實生效了;

說明了: driving_site可以跟use_nl及leading一起使用;

後話:在遠端表oracl_sys_temp加乙個索引,走nl更快;

小結:

1.通過remote對應的表和remote sql information以及注釋三個方面都可以判斷sql是在本地還是遠端執行,預設在本地節點執行;

2.如果本地表小,且返回的資料也小的話,強制走遠端節點訪問效率最好的;

3. driving_site可以跟use_nl及leading一起使用;

有哪些特點 極簡風格裝修有哪些特點

房子在裝修的時候,人們在裝修的風格上面都很重視,尤其是對極簡風格很受歡迎,但是有的人們不知道都有哪些特點,還有在裝修的時候,都有哪些方法,對這些都不太了解,那麼極簡風格裝修的特點有哪些?一.極簡風格裝修的特點 1.極簡風格裝修的特點之強調功能性,還有極簡裝修裝修風格特別強調功能性,注重材料 技術以及...

JS簡簡簡易時鐘

簡易時鐘 1 搭建html css部分 插入時鐘背景,使用子絕父相。把時針和分針 秒針的樣式放在時鐘的中心位置 2 js邏輯部分 1 獲取時針 分針 秒針 var hour document.getelementbyid hour var min document.getelementbyid mi...

List子類特點和Set子類特點

list的三個子類有vector,arraylist,linkedlist 特點 有序,可重複,有索引可以使用普通for迴圈遍歷 arraylist 底層資料結構是陣列,查詢快,增刪慢,執行緒不安全,效率高 vector 底層資料結構是陣列,查詢快,增刪慢,執行緒安全,效率低 linkedlist ...