Oracle性能优化之表压缩及并行提高效率的测试
1、制作测试表
create table t1 as select * from FW_T_GTXLOG
insert into t1 select * from t1;
create table t2 compress as select * from t1
create table t3 as select * from t1
2、查看测试表数据量
select count(*) from t1;
select count(*) from t2;
select count(*) from t3;
3、查看测试表物理大小
SQL> select t.bytes/1024/1024/1024,t.blocks from dba_segments t where t.segment_name='T1';
T.BYTES/1024/1024/1024 BLOCKS
---------------------- ----------
16.8876953G 2213504
Elapsed: 00:00:00.14
SQL> select t.bytes/1024/1024/1024,t.blocks from dba_segments t where t.segment_name='T2';
T.BYTES/1024/1024/1024 BLOCKS
---------------------- ----------
13.0625G 1712128
Elapsed: 00:00:00.10
SQL> select t.bytes/1024/1024/1024,t.blocks from dba_segments t where t.segment_name='T3';
T.BYTES/1024/1024/1024 BLOCKS
---------------------- ----------
16.8359375G 2206720
Elapsed: 00:00:00.09
4、查看测试表索引大小
SQL> select t.bytes/1024/1024/1024,t.blocks*8192 from dba_segments t where t.segment_name='IND_GUID_1';
T.BYTES/1024/1024/1024 T.BLOCKS*8192
---------------------- -------------
3.125 3355443200
Elapsed: 00:00:00.10
SQL> select t.bytes/1024/1024/1024,t.blocks*8192 from dba_segments t where t.segment_name='IND_GUID_2';
T.BYTES/1024/1024/1024 T.BLOCKS*8192
---------------------- -------------
.5390625 578813952
Elapsed: 00:00:00.09
SQL> select t.bytes/1024/1024/1024,t.blocks*8192 from dba_segments t where t.segment_name='IND_GUID_3';
T.BYTES/1024/1024/1024 T.BLOCKS*8192
---------------------- -------------
.5390625 578813952
Elapsed: 00:00:00.10
5、查看测试表定义语句
-- Create table T1
create table T1
(
GUID NVARCHAR2(32) not null,
GTXID NVARCHAR2(200),
STARTTIME NVARCHAR2(32),
SOURCETX NUMBER(1),
STATUS NUMBER(1),
ENDTIME NVARCHAR2(32),
DOMAIN NVARCHAR2(50)
)
tablespace EFMIS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
next 8
minextents 1
maxextents unlimited
);
-- Create/Recreate indexes
create index IND_GUID_1 on T1 (GUID)
tablespace EFMIS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Create table T2
create table T2
(
GUID NVARCHAR2(32) not null,
GTXID NVARCHAR2(200),
STARTTIME NVARCHAR2(32),
SOURCETX NUMBER(1),
STATUS NUMBER(1),
ENDTIME NVARCHAR2(32),
DOMAIN NVARCHAR2(50)
)
tablespace EFMIS
pctfree 0
initrans 1
maxtrans 255
storage
(
initial 64
next 8
minextents 1
maxextents unlimited
)
compress; -------------------------------------------------------------------------------
-- Create/Recreate indexes
create index IND_GUID_2 on T2 (GUID)
tablespace EFMIS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
)
compress; ---------------------------------------------------
-- Create table T3
create table T3
(
GUID NVARCHAR2(32) not null,
GTXID NVARCHAR2(200),
STARTTIME NVARCHAR2(32),
SOURCETX NUMBER(1),
STATUS NUMBER(1),
ENDTIME NVARCHAR2(32),
DOMAIN NVARCHAR2(50)
)
tablespace EFMIS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
next 8
minextents 1
maxextents unlimited
);
-- Create/Recreate indexes
create index IND_GUID_3 on T3 (GUID)
tablespace EFMIS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
)
compress; ---------------------------------------------------------------------
6、收集3张表统计信息
begin
dbms_stats.gather_table_stats(ownname => 'FASP_62',
tabname => 'T1',
estimate_percent => 30,
method_opt => 'FOR ALL COLUMNS SIZE 10',
degree => 4,
cascade => TRUE);
END;
7、测试具体查询语句效率:table access full
SQL> select count(*) from t1;
COUNT(*)
----------
37458112
Elapsed: 00:00:31.22
SQL> select count(*) from t2;
COUNT(*)
----------
37458112
Elapsed: 00:00:08.66
SQL> select count(*) from t3;
COUNT(*)
----------
37458112
Elapsed: 00:00:08.25
8、测试具体查询语句效率:index fasp full scan
SQL> select count(guid) from t1 where guid like '%BA92A682D9%';
COUNT(GUID)
-----------
32
Elapsed: 00:00:34.52
SQL> select count(guid) from t2 where guid like '%BA92A682D9%';
COUNT(GUID)
-----------
32
Elapsed: 00:00:18.27
SQL> select count(guid) from t3 where guid like '%BA92A682D9%';
COUNT(GUID)
-----------
32
Elapsed: 00:00:20.27
结论:t2\t3表的索引为压缩索引,从以上执行结果可知,索引重复率情况下,compress压缩对于select而言,具有一定的效果,提高速度一半以上。
9、结论
1、非唯一性索引可以建立compress索引。
create index IND_GUID_3 on T3 (GUID) tablespace EFMIS compress;
2、可以通过以下命令查看索引或者表占据的硬盘容量:
select t.bytes/1024/1024/1024,t.blocks*8192 from dba_segments t where t.segment_name='IND_GUID_3';
select t.bytes/1024/1024/1024,t.blocks*8192 from dba_segments t where t.segment_name='IND_GUID_1';
以上sql查询出的索引大小与为压缩的索引大小相差悬殊,择证明压缩后可以提高查询效率。
Oracle性能优化之表压缩及并行提高效率的测试的更多相关文章
- Oracle性能优化顺序表名称来选择最有效的学习笔记
选择最有效的顺序表名(只有有效的基于规则的优化) ORACLE分析器按照订单处理从右到左FROM在FROM子句中的表名,故FROM写在最后的表(基础表 driving table)将被最先处理. 在 ...
- oracle性能优化之表设计
数据库优化的目标无非是避免磁盘I/O瓶颈.减少CPU利用率和减少资源竞争.为了便于读者阅读和理解,笔者参阅了Sybase.Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验 ...
- oracle性能优化之awr分析
oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...
- 【转载】我眼中的Oracle性能优化
我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...
- SQL Server查询性能优化——堆表、碎片与索引(二)
本文是对 SQL Server查询性能优化——堆表.碎片与索引(一)的一些总结. 第一:先对 SQL Server查询性能优化——堆表.碎片与索引(一)中的例一的SET STATISTICS IO之 ...
- 我眼中的 Oracle 性能优化
恒生技术之眼 作者 林景忠 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角度 ...
- Oracle性能优化1-总体思路和误区
最近在看梁敬彬老师关于Oracle性能优化的一些案例,在这里做一些简单的总结 1.COUNT(*)与COUNT(列)哪个更快 drop table t purge; create table t as ...
- 0709MySQL 数据库性能优化之表结构优化
转自http://isky000.com/database/mysql-perfornamce-tuning-schema MySQL 数据库性能优化之缓存参数优化 MySQL数据库性能优化之硬件瓶颈 ...
- Oracle 性能优化的基本方法
Oracle 性能优化的基本方法概述 1)设立合理的性能优化目标. 2)测量并记录当前性能. 3)确定当前Oracle性能瓶颈(Oracle等待什么.哪些SQL语句是该等待事件的成分). 4)把等待事 ...
随机推荐
- (转)S5pv210 HDMI 接口在 Linux 3.0.8 驱动框架解析 (By liukun321 咕唧咕唧)
作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文 ...
- perl 内置操作符 $^O -判断操作系统环境
今天看bowtie2的源代码的时候,发现有这样一段用法: my $os_is_nix = $^O ne "MSWin32"; my $align_bin_s = $os_is_ni ...
- R语言低级绘图函数-arrows
arrows 函数用来在一张图表上添加箭头,只需要分别指定起始坐标和终止坐标,就可以添加箭头了,还可以通过一些属性对箭头的形状,大小进行调整 基本用法: xo, yo 指定起始点的x和y坐标,x1, ...
- MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45
wget "https://raw.githubusercontent.com/rapid7/metasploit-framework/6d81ca42087efd6548bfcf92417 ...
- 扒一扒MathType不为人知的技巧
MathType作为一款编辑数学公式的神器,很多人在使用它时只是很简单地使用了一些最基本的模板,很多功能都没有使用.MathType功能比你想象中的大很多,今天我们就来扒一扒MathType那些不为人 ...
- GIS-011-Cesium 使用 IIS设置
.terrain Content-Type='application/octet-stream'
- python2.0_s12_day19_前端结合后端展示客户咨询纪录
接下来就是将后台视图与前端页面结合起来了完成后台系统了.实现前端展示用户列表1.先在base.html代码中把模版中Dashboard下面的内容清空,如下: 具体删除哪些html代码,自己找吧.2.我 ...
- 【RF库Collections测试】Insert Into List
Name:Insert Into ListSource:Collections <test library>Arguments:[ list_ | index | value ]Inser ...
- MySQL只有information_schema,test两个数据库
一.现象 1.今天登上数据库,用 mysql -uroot -proot 登录(本人密码是root),出现: 2.然后尝试 无密码登录,竟然登录成功: 3.查看mysql中的数据库,发现只有两个系统表 ...
- php学习六:字符串
前言:越来越觉得php的强大之处了,不紧是数组,在字符串方面也可以看出它的优势,第一:方法多,集合了js,c,c#等多门语言的方法:第二:有许多方法是其他语言不具备的,如他的模糊比较,就是其他语言所没 ...