楼主: zcs0237

[原创] 表的优化相关知识

[复制链接]
求职 : 数据库管理员
论坛徽章:
45
祖国60周年纪念徽章
日期:2015-05-19 13:02:04itpub13周年纪念徽章
日期:2014-12-30 09:02:122010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:192014数据库大会纪念章
日期:2015-04-23 10:33:192015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24暖羊羊
日期:2015-05-13 18:24:182015年新春福章
日期:2015-05-30 17:02:05
11#
 楼主| 发表于 2013-8-13 19:29 | 只看该作者

第10部分-表压缩(通过删除在表中发现的重复数据值来节省空间)

本帖最后由 zcs0237 于 2013-8-13 18:25 编辑

---相同内容的表,使用表空间默认压缩要小很多?请专家告知原因
10.01-在表级别为特定表指定压缩选项(相同的表压缩后HWM下的块=1090)
一、建表t101插入数据
ZCS@11g>  create table t101 (id int,name varchar2(19)) segment creation IMMEDIATE tablespace system;
begin
for i in 1..123456 loop
insert into t101 values(i,lpad('z',19,'z'));
commit;
end loop;
end;
/
二、t101表默认是未压缩的
ZCS@11g>   select '--',compression,compress_for from  dba_tables where table_name='T101';
-- DISABLED
ZCS@11g>    analyze table t101 compute statistics;
select '--',t.blocks,t.empty_blocks,s.blocks from user_tables t,dba_segments s
where t.table_name=s.segment_name and t.table_name='T101';
--1369=hwm之下曾用过的块   38=hwm之外已分配给表未用过的块  1408=段大小
三、将t101压缩
ZCS@11g>    alter table t101 move compress;
select '--',compression,compress_for from  dba_tables where table_name='T101';
-- ENABLED  BASIC
ZCS@11g> analyze table t101 compute statistics;
select '--',t.blocks,t.empty_blocks,s.blocks from user_tables t,dba_segments s
where t.table_name=s.segment_name and t.table_name='T101';
--1090=hwm之下曾用过的块   61=hwm之外已分配给表未用过的块  1152=段大小


10.02-在表空间级别指定默认压缩选项(相同的表压缩后HWM下的块=458)
一、在表空间上设置默认压缩选项
ZCS@11g>   alter tablespace system default compress;
二、建t102表并插入数据
ZCS@11g>  create table t102 (id int,name varchar2(19)) segment creation IMMEDIATE tablespace system;
begin
for i in 1..123456 loop
insert into t102 values(i,lpad('z',19,'z'));
commit;
end loop;
end;
/
三、t102表已自动从表空间继承压缩属性
select '--',compression,compress_for from  dba_tables where table_name='T102';
-- ENABLED  BASIC

ZCS@11g>  analyze table t102 compute statistics;
select '--',t.blocks,t.empty_blocks,s.blocks from user_tables t,dba_segments s
where t.table_name=s.segment_name and t.table_name='T102';
--458=hwm之下曾用过的块   53=hwm之外已分配给表未用过的块  512=段大小
---同样的数据表空间默认压缩要小很多?

四、单独将t101表的压缩属性去除
ZCS@11g>   alter table t102 nocompress;
select '--',compression,compress_for from  dba_tables where table_name='T102';
-- DISABLED

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
45
祖国60周年纪念徽章
日期:2015-05-19 13:02:04itpub13周年纪念徽章
日期:2014-12-30 09:02:122010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:192014数据库大会纪念章
日期:2015-04-23 10:33:192015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24暖羊羊
日期:2015-05-13 18:24:182015年新春福章
日期:2015-05-30 17:02:05
12#
 楼主| 发表于 2013-8-13 19:29 | 只看该作者

第11部分-将经常使用的表放置在db_keep_cache_size中减少物理读

本帖最后由 zcs0237 于 2014-2-24 21:40 编辑

一、设置KEEP池
SYS@zcs11G>  alter system set db_keep_cache_size=60m scope=spfile;
shutdown immediate;
show parameter db_keep
--db_keep_cache_size                   big integer 60M
二、查看数据库中已经有那些表被标记为热点表
SYS@zcs11G> select '--',owner,segment_type,segment_name,buffer_pool from dba_segments where buffer_pool != 'DEFAULT';
-- no rows selected

三、设置t11表的storage(buffer_pool keep)属性
SYS@zcs11G>  drop table t11 purge;
create table t11 as select level id,lpad('z',4000,'z') name from dual  connect by level <= 5000;
alter table t11 storage(buffer_pool keep);
select '--',bytes/1024/1024,'MB' from dba_segments where segment_name='T11';
--              40 MB
四、查看是否在缓存keep中
SYS@zcs11G>  set pagesize 0
set autotrace off
col segment_name for a12
select '--',segment_name,buffer_pool from dba_segments where buffer_pool != 'DEFAULT';
-- T11           KEEP
SYS@zcs11G>  set linesize 999
select '--',a.status, count(*)  from V$BH a, user_objects b  
where a.objd=b.object_id and object_name='T11' group by object_name, a.status;
-- xcur             5001   T11中的数据已经全部放入KEEP池
五、体会keep池的优势
SYS@zcs11G>  set autotrace trace statistics;
select count(*) from t11;

Statistics
----------------------------------------------------------
        140  recursive calls
          0  db block gets
       5090  consistent gets
       5000  physical reads


SYS@zcs11G>  select count(*) from t11;
Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
       5008  consistent gets
          0  physical reads

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
45
祖国60周年纪念徽章
日期:2015-05-19 13:02:04itpub13周年纪念徽章
日期:2014-12-30 09:02:122010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:192014数据库大会纪念章
日期:2015-04-23 10:33:192015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24暖羊羊
日期:2015-05-13 18:24:182015年新春福章
日期:2015-05-30 17:02:05
13#
 楼主| 发表于 2013-8-13 19:29 | 只看该作者

12月2号上传了pdf带标签版:

本帖最后由 zcs0237 于 2013-12-3 11:40 编辑

使用道具 举报

回复
论坛徽章:
1
兰博基尼
日期:2013-08-19 21:27:34
14#
发表于 2013-8-13 21:12 | 只看该作者
谢谢分享,感谢楼主,文章给力。

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
45
祖国60周年纪念徽章
日期:2015-05-19 13:02:04itpub13周年纪念徽章
日期:2014-12-30 09:02:122010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:192014数据库大会纪念章
日期:2015-04-23 10:33:192015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24暖羊羊
日期:2015-05-13 18:24:182015年新春福章
日期:2015-05-30 17:02:05
15#
 楼主| 发表于 2013-8-13 21:19 | 只看该作者
syslong 发表于 2013-8-13 21:12
谢谢分享,感谢楼主,文章给力。

第一个回帖

使用道具 举报

回复
论坛徽章:
70
夏利
日期:2013-09-29 21:02:15天蝎座
日期:2016-03-08 22:25:51嫦娥
日期:2014-03-04 16:46:45ITPUB年度最佳技术原创精华奖
日期:2014-03-04 16:19:29马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:11
16#
发表于 2013-8-13 22:33 | 只看该作者
刚兄又有新作了,

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
45
祖国60周年纪念徽章
日期:2015-05-19 13:02:04itpub13周年纪念徽章
日期:2014-12-30 09:02:122010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:192014数据库大会纪念章
日期:2015-04-23 10:33:192015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24暖羊羊
日期:2015-05-13 18:24:182015年新春福章
日期:2015-05-30 17:02:05
17#
 楼主| 发表于 2013-8-13 22:43 | 只看该作者
vage 发表于 2013-8-13 22:33
刚兄又有新作了,

V哥过节回来啦

使用道具 举报

回复
论坛徽章:
70
夏利
日期:2013-09-29 21:02:15天蝎座
日期:2016-03-08 22:25:51嫦娥
日期:2014-03-04 16:46:45ITPUB年度最佳技术原创精华奖
日期:2014-03-04 16:19:29马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:11
18#
发表于 2013-8-13 22:56 | 只看该作者
zcs0237 发表于 2013-8-13 22:43
V哥过节回来啦

一直在地税这边。

使用道具 举报

回复
论坛徽章:
25
咸鸭蛋
日期:2012-04-19 22:15:41技术图书徽章
日期:2016-11-05 10:34:54弗兰奇
日期:2016-12-04 22:53:10托尼托尼·乔巴
日期:2016-12-29 12:51:28蒙奇·D·路飞
日期:2017-03-17 17:18:21罗罗诺亚·索隆
日期:2017-03-17 17:24:44山治
日期:2017-04-21 13:55:28娜美
日期:2017-05-19 14:49:04技术图书徽章
日期:2017-07-10 17:12:09托尼托尼·乔巴
日期:2018-02-01 10:07:45
19#
发表于 2013-8-13 23:03 | 只看该作者
看看哦,非常精彩!

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
25
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25itpub13周年纪念徽章
日期:2014-10-08 16:34:19itpub13周年纪念徽章
日期:2014-10-10 17:49:05马上有车
日期:2014-12-19 09:23:24马上加薪
日期:2014-12-29 20:30:27马上有车
日期:2015-01-20 22:29:13美羊羊
日期:2015-03-04 14:52:282015年新春福章
日期:2015-03-06 11:58:18狮子座
日期:2015-07-14 14:44:11秀才
日期:2015-08-17 13:13:32
20#
发表于 2013-8-13 23:04 | 只看该作者
学习了;
不错,小刚,加油。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表