成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle使用hash分區優化分析函數查詢

數據庫 Oracle 數據庫運維
本文將介紹Oracle使用hash分區優化分析函數查詢,一般需要通過創建一個分區表和普通表,插入數據等步驟來進行優化。

在ORACLE中的分析函數都是基于某幾個字段劃分計算窗口,然后在窗口內進行聚合,排名,等等計算。我想如果我們數據表的hash分區字段與分析函數中的partition by 字段一致的時候,應該可以大大加快分析函數的運行效率。因為每個分區上的數據可以單獨進行運算。互不干涉,下面試驗來驗證我的想法.

***步:創建一個分區表和普通表,表結構與DBA_OBJECTS一致:

create table t_partition_hash(
object_name varchar2(128),
subobject_name varchar2(30),
object_id number,
data_object_id number,
object_type varchar2(19),
created date,
last_ddl_time date,
timestamp varchar2(19),
status varchar2(7),
temporary varchar2(1),
generated varchar2(1),
secondary varchar2(1)
)
 partition by hash(object_type)(
 partition t_hash_p1 tablespace USERS,
 partition t_hash_p2 tablespace USERS,
 partition t_hash_p3 tablespace USERS,
 partition t_hash_p4 tablespace USERS,
 partition t_hash_p5 tablespace USERS,
 partition t_hash_p6 tablespace USERS,
 partition t_hash_p7 tablespace USERS,
 partition t_hash_p8 tablespace USERS
 );

create table t_big_hash(
object_name varchar2(128),
subobject_name varchar2(30),
object_id number,
data_object_id number,
object_type varchar2(19),
created date,
last_ddl_time date,
timestamp varchar2(19),
status varchar2(7),
temporary varchar2(1),
generated varchar2(1),
secondary varchar2(1)
);

第二步:準備數據,從dba_object中把數據插入到兩個表。總共插入數據1610880。

insert into t_partition_hash select * from dba_objects;

insert into t_partition_hash select * from dba_objects;

第三步:本采用RANK函數對兩個表進行查詢。

begin
insert into  t_rank
select object_id,
rank() over (partition by object_type order by object_id)  r_object_id,
rank() over (partition by object_type order by subobject_name) r_subobject_name ,
rank() over (partition by object_type order by created) r_created,
rank() over (partition by object_type order by last_ddl_time) r_last_ddl_time ,
rank() over (partition by object_type order by status) r_object_type
 from t_partition_hash;
end;

使用hash分區表總共執行5次的運行時間分別為:46.156s,33.39s,40.516s 34.875s 38.938s.

begin
insert into  t_rank
select object_id,
rank() over (partition by object_type order by object_id)  r_object_id,
rank() over (partition by object_type order by subobject_name) r_subobject_name ,
rank() over (partition by object_type order by created) r_created,
rank() over (partition by object_type order by last_ddl_time) r_last_ddl_time ,
rank() over (partition by object_type order by status) r_object_type
 from t_big_table;
end;

使用非分區表執行5次的執行時間分別為:141.954s,89.656s,77.906s,98.5s,75.906s.

由此可見采用有效的HASH分區表可以有效提升分析函數在oracle中的執行效率。我相信隨著數據量的增加,將會有更明顯的效果,回頭再測試一個項目中遇到的類似問題。

【編輯推薦】

  1. 善用Oracle表空間設計提升數據庫性能
  2. 優化數據庫大幅度提高Oracle的性能
  3. Oracle設置系統參數進行性能優化
責任編輯:彭凡 來源: ITPUB
相關推薦

2010-04-19 13:43:38

Oracle分析函數

2017-03-09 13:11:48

Oracle分析函數

2010-10-25 10:55:11

Oracle函數索引

2018-06-26 15:58:06

數據庫MySQL索引優化

2009-06-03 10:32:36

Oracle性能優化分區技術

2010-04-20 13:30:42

2021-01-24 11:46:26

自動化Web 優化

2010-04-22 12:46:55

Oracle hint

2017-09-05 09:02:06

Oraclenot null優化

2021-07-04 07:07:06

Ceph分布式存儲架構

2019-03-19 14:52:00

性能優化MySQL數據庫

2021-08-07 05:00:20

存儲系統

2017-07-19 09:53:42

Oracle分區問題

2010-04-28 16:45:27

Oracle Inst

2021-01-20 08:07:52

oracle分區單表

2018-04-28 16:20:31

機器學習算法分發鏈路

2010-05-07 11:00:25

Oracle多表查詢

2010-04-12 17:47:01

Oracle多表查詢

2023-07-26 12:38:42

PyGWalker數據類型

2017-05-08 17:40:23

Oracle視圖優化案例分析
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久婷婷国产综合精品电影 | 成人国产精品久久久 | 亚洲毛片 | 91精品一区二区 | 紧缚调教一区二区三区视频 | 天天插天天操 | 成年免费大片黄在线观看岛国 | 精品乱码一区二区 | 国产精品国产精品国产专区不蜜 | 国内久久精品 | 国产成人精品久久二区二区91 | 中文字幕在线观看一区 | 亚洲欧美日韩成人在线 | 一区二区三区在线免费观看 | 99精品久久| 国产色片在线 | 精品久久久久一区 | 久久看精品 | 超碰激情 | 国产一区二区在线视频 | 国产成人精品午夜视频免费 | 精品欧美乱码久久久久久1区2区 | 亚洲精品福利在线 | 久久精品国产99国产精品 | 天天色天天色 | 亚洲成人免费视频在线 | 精品国产三级 | 亚洲人人舔人人 | 羞羞视频网站免费观看 | 久久久久久久网 | av中文字幕在线 | 九色一区 | 欧美一区二区三区在线观看视频 | 中文字幕日韩在线 | 欧产日产国产精品视频 | 综合成人在线 | 欧美三级在线 | 黄色av网站在线观看 | 久久精品国产精品青草 | a爱视频| 日韩一区二区在线播放 |