日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何使用Hash分區(qū)優(yōu)化Oracle分析函數(shù)

原理:數(shù)據(jù)表的hash分區(qū)字段與分析函數(shù)中的partition by 字段一致的時(shí)候,每個(gè)分區(qū)上的數(shù)據(jù)可以單獨(dú)進(jìn)行運(yùn)算,互不干涉。所以可以很快的提高Oracle分析函數(shù)的運(yùn)行效率。具體測試步驟如下:

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比海陵網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式海陵網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋海陵地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

***步:創(chuàng)建一個(gè)分區(qū)表和普通表,表結(jié)構(gòu)與DBA_OBJECTS一致:

 
 
 
  1. create table t_partition_hash(  
  2. object_name varchar2(128),  
  3. subobject_name varchar2(30),  
  4. object_id number,  
  5. data_object_id number,  
  6. object_type varchar2(19),  
  7. created date,  
  8. last_ddl_time date,  
  9. timestamp varchar2(19),  
  10. status varchar2(7),  
  11. temporary varchar2(1),  
  12. generated varchar2(1),  
  13. secondary varchar2(1)  
  14. )  
  15. partition by hash(object_type)(  
  16. partition t_hash_p1 tablespace USERS,  
  17. partition t_hash_p2 tablespace USERS,  
  18. partition t_hash_p3 tablespace USERS,  
  19. partition t_hash_p4 tablespace USERS,  
  20. partition t_hash_p5 tablespace USERS,  
  21. partition t_hash_p6 tablespace USERS,  
  22. partition t_hash_p7 tablespace USERS,  
  23. partition t_hash_p8 tablespace USERS  
  24. );  
  25. create table t_big_hash(  
  26. object_name varchar2(128),  
  27. subobject_name varchar2(30),  
  28. object_id number,  
  29. data_object_id number,  
  30. object_type varchar2(19),  
  31. created date,  
  32. last_ddl_time date,  
  33. timestamp varchar2(19),  
  34. status varchar2(7),  
  35. temporary varchar2(1),  
  36. generated varchar2(1),  
  37. secondary varchar2(1)  
  38. );  
  39.  

#p#

第二步:準(zhǔn)備數(shù)據(jù),從dba_object中把數(shù)據(jù)插入到兩個(gè)表??偣膊迦霐?shù)據(jù)1610880。

 
 
 
  1. insert into t_partition_hash select * from dba_objects;  
  2. insert into t_partition_hash select * from dba_objects;  
  3.  

第三步:本采用RANK函數(shù)對(duì)兩個(gè)表進(jìn)行查詢。

 
 
 
  1. begin  
  2. insert into t_rank  
  3. select object_id,  
  4. rank() over (partition by object_type order by object_id) r_object_id,  
  5. rank() over (partition by object_type order by subobject_name) r_subobject_name ,  
  6. rank() over (partition by object_type order by created) r_created,  
  7. rank() over (partition by object_type order by last_ddl_time) r_last_ddl_time ,  
  8. rank() over (partition by object_type order by status) r_object_type  
  9. from t_partition_hash;  
  10. end;  
  11.  

使用hash分區(qū)表總共執(zhí)行5次的運(yùn)行時(shí)間分別為:46.156s,33.39s,40.516s 34.875s 38.938s.

 
 
 
  1. begin  
  2. insert into t_rank  
  3. select object_id,  
  4. rank() over (partition by object_type order by object_id) r_object_id,  
  5. rank() over (partition by object_type order by subobject_name) r_subobject_name ,  
  6. rank() over (partition by object_type order by created) r_created,  
  7. rank() over (partition by object_type order by last_ddl_time) r_last_ddl_time ,  
  8. rank() over (partition by object_type order by status) r_object_type  
  9. from t_big_table;  
  10. end;  
  11.  

使用非分區(qū)表執(zhí)行5次的執(zhí)行時(shí)間分別為:141.954s,89.656s,77.906s,98.5s,75.906s.

由此可見采用有效的HASH分區(qū)表可以有效提升Oracle分析函數(shù)中的執(zhí)行效率。我相信隨著數(shù)據(jù)量的增加,將會(huì)有更明顯的效果,回頭再測試一個(gè)項(xiàng)目中遇到的類似問題。

善用Oracle表空間設(shè)計(jì)提升數(shù)據(jù)庫性能

優(yōu)化數(shù)據(jù)庫大幅度提高Oracle分析函數(shù)的性能

Oracle設(shè)置系統(tǒng)參數(shù)進(jìn)行性能優(yōu)化
 

【編輯推薦】

  1. 修改Oracle存儲(chǔ)過程所需代碼
  2. 對(duì)Oracle存儲(chǔ)過程的總結(jié)
  3. 實(shí)現(xiàn)Oracle存儲(chǔ)過程的實(shí)際應(yīng)用的代碼 
  4. 深入高性能的Oracle動(dòng)態(tài)SQL開發(fā) 
  5. Oracle SQL的優(yōu)化規(guī)則解析 

網(wǎng)站欄目:如何使用Hash分區(qū)優(yōu)化Oracle分析函數(shù)
文章源于:http://m.5511xx.com/article/cddcgop.html