分区默认segment大小变化(64k—>8M)
_partition_large_extents和_index_partition_large_extents
参考:
http://www.xifenfei.com/2013/08/%E5%88%86%E5%8C%BA%E9%BB%98%E8%AE%A4segment%E5%A4%A7%E5%B0%8F%E5%8F%98%E5%8C%9664k-8m.html
从11.2.0.2开始创建分区表,每个分区默认大小为8M,是由_partition_large_extents参数控制,可以算是11.2.0.2开始的一个新特性,为了减少extent数量,提高分区表性能,而引入的一个参数,默认为true,即分区表的每个extent为8M,这里对于_partition_large_extents为true和false的情况进行了测试。
例1:
数据库参数情况如下:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
SQL> alter system set "_partition_large_extents"=true;
System altered
SQL> alter system set "_index_partition_large_extents"=true;
System altered
SQL> show parameter _partition_large_extents
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_index_partition_large_extents string TRUE
_partition_large_extents string TRUE
SQL> show parameter deferred_segment_creation--是否启用延迟段
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE
1)创建分区表:
CREATE TABLE Table1001
(
idd INT,
iNAME VARCHAR(10),
grade INT
)
PARTITIONBYRANGE(grade)
(
PARTITION part1 VALUESLESSTHAN(10)TABLESPACEtest,
PARTITION part2 VALUESLESSTHAN(MAXVALUE)TABLESPACEtest
);
2)穿件普通表
CREATETABLE table1002
(
idd INT,
iNAME VARCHAR(10),
grade INT
)TABLESPACETEST;
3)创建索引
createindex ind1 on table1001(idd)local tablespacetest;
createindex ind2 on table1002(idd) tablespace test;
createindex ind3 on table1001(iname) tablespace test;
createindex ind4 on table1002(iname) tablespace test;
查询segment视图,确定初始创建表所占空间大小:
select t.segment_name,
t.partition_name,
t.tablespace_name,
t.bytes /1024/1024||'m',
t.blocks,
t.extents
from dba_segments t
where t.tablespace_name ='TEST';
SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME T.BYTES/1024/1024||'M' BLOCKS EXTENTS
-------------------------------------------------------------------------------- -----------------------------
IND1 PART2 TEST 8m 1024 1
IND1 PART1 TEST 8m 1024 1
IND2 TEST 0.0625m 8 1
IND3 TEST 0.0625m 8 1
IND4 TEST 0.0625m 8 1
TABLE1001 PART2 TEST 8m 1024 1
TABLE1001 PART1 TEST 8m 1024 1
TABLE1002 TEST 0.0625m 8 1
结论:从例1可以得出结论,在11.2.0.4版本中,当参数_partition_large_extents等于true时(此时可能不可见),创建分区表默认占用空间大小为每个分区8m,而普通表默认占据空间大小仅0.0625m(64k)。而当_index_partition_large_extents为true时,创建分区索引时,默认分区大小为8m,而创建普通索引默认大小为64k。
例2:
SQL> alter system set "_partition_large_extents"=false;
System altered
SQL> alter system set "_index_partition_large_extents"=false;
System altered
SQL> show parameter _partition_large_extents
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_index_partition_large_extents string FALSE
_partition_large_extents string FALSE
SQL> show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE
创建分区表:
CREATETABLE Table1001
(
idd INT,
iNAME VARCHAR(10),
grade INT
)
PARTITIONBYRANGE(grade)
(
PARTITION part1 VALUESLESSTHAN(10)TABLESPACEtest,
PARTITION part2 VALUESLESSTHAN(MAXVALUE)TABLESPACEtest
);
创建普通表:
CREATETABLE table1002
(
idd INT,
iNAME VARCHAR(10),
grade INT
)TABLESPACETEST;
创建索引:
createindex ind1 on table1001(idd)localtablespacetest;
createindex ind2 on table1002(idd)tablespacetest;
createindex ind3 on table1001(iname)tablespacetest;
createindex ind4 on table1002(iname)tablespacetest;
查询segment视图,确定初始创建表所占空间大小:
select t.segment_name,
t.partition_name,
t.tablespace_name,
t.bytes /1024/1024||'m',
t.blocks,
t.extents
from dba_segments t
where t.tablespace_name ='TEST';
SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME T.BYTES/1024/1024||'M' BLOCKS EXTENTS
-------------------------------------------------------------------------------- -----------------------------
IND1 PART2 TEST 0.0625m 1024 1
IND1 PART1 TEST 0.0625m 1024 1
IND2 TEST 0.0625m 8 1
IND3 TEST 0.0625m 8 1
IND4 TEST 0.0625m 8 1
TABLE1001 PART2 TEST 0.0625m 1024 1
TABLE1001 PART1 TEST 0.0625m 1024 1
TABLE1002 TEST 0.0625m 8 1
结论:通过测试证明,设置_partition_large_extents参数确实是能够控制分区表的extent大小,而且对于分区表,deferred_segment_creation虽然为true,但是在一个分区表中如果有一个子分区插入了记录,那么其他子分区会同时创建segment.对于数据量不多,而且数据大量集中在某几个分区,那强烈建议设置_partition_large_extents为false,节约空间.如果数据量较大,而且数据分布较为均匀,建议设置_partition_large_extents为true.另外对于分区的index也有同样意义的参数为_index_partition_large_extents。
可以看到在11.2.0.2 以后_partition_large_extents参数默认打开(default : TRUE),创建的初始化分区大小为8M。
实际该特性可能在导致以下2个问题:
若配合deferred_segment_creation=false使用则创建具有大量分区的表时,耗时大幅增长.
若配合deferred_segment_creation=false使用则建好后空表的所占空间为8M*分区数目,对比关闭该特性的情况会大非常多
分区默认segment大小变化(64k—>8M)的更多相关文章
- 分区默认segment大小变化(64k—>8M)
_partition_large_extents和_index_partition_large_extents 参考: http://www.xifenfei.com/2013/08/%E5%88%8 ...
- Oracle 分区默认segment大小变化(64k—>8M)
原文链接:http://www.cnblogs.com/wcwen1990/p/6656545.html _partition_large_extents和_index_partition_large ...
- delphi 窗口最大化后控件的大小变化怎么设置
设置按钮的Anchors属性.可以通过此属性设置其边界是否随父类一起变化.默认akleft+aktop即左边界和上边界随窗口变化,也就是说如果窗口位置移动了,按钮将保持其left和top边界与窗口的距 ...
- Linux系统之更改默认块大小
查看操作系统块大小:#tune2fs -l /dev/sda1 |grep 'Block size' ( tune2fs -l /dev/sda1可以查看更多相关文件 ...
- 如何修改 Discuz 门户文章页默认视频大小
在 Discuz 系统中,论坛插入 Flash 等可以输入自定义的尺寸,但是门户文章页不可以修改.经过一番研究,找到了修改门户文章页默认视频大小的方法如下,希望对你有用:找到:/source/func ...
- TableControl大小变化
TableControl跟随Form大小变化: 选中TableControl,而不是TablePage,右侧Layout: 可以对其设置居上.居下等位置
- angular2监听页面大小变化
一.现象 全屏页面中的图表,在很多的时候需要 resize 一把,以适应页面的大小变化 二.解决 1.引入 : import { Observable } from 'rxjs'; 2.使用(在ngO ...
- div宽度随屏幕大小变化
题目: 一个页面上两个div左右铺满整个浏览器, 要保证左边的div一直为100px,右边的div跟随浏览器大小变化, 比如浏览器为500,右边div为400,浏览器为900,右边div为800. 方 ...
- java 默认内存大小
https://www.cnblogs.com/jack204/archive/2012/07/02/2572932.html -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设 ...
随机推荐
- CSS3动画:流彩文字效果+图片模糊效果+边框伸展效果实现
前言 首先第一步,先布局html代码如下: <div class="wrap"> <img src="images/1.jpg" class= ...
- sublime text2 中标签高亮效果BracketHighlighter插件
1.打开package Control,选择install Package 2.输入BracketHighlighter,回车 3.这样该插件会自动安装,安装后所有的提示高亮都是白色或没有提示.按 p ...
- 洛谷P3209 [HNOI2010]PLANAR(2-SAT)
题目描述 若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称G是平面图.判定一个图是否为平面图的问题是图论中的一个重要问题.现在假设你要判定的是一类特殊的图,图中存在一个包含所 ...
- [新特性]PeopleTools8.54+:PeopleSoft Application Engine新特性
PeopleTools 8.54 的Application Engine 已经被更新,特别是在AE跟踪设置中有了更多的选项,本文将帮助您了解8.54的新AE特性以及如何使用这些特性. AE trace ...
- springboot 集成 mybatis
1,添加依赖 <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId& ...
- 系统调用syscall---用户态切换到内核态的唯一途径
1.应用程序有时需要内核协助完成一些处理,但是应用程序不可能执行内核代码(主要是安全性考虑), 那么,应用程序需要有一种机制告诉内核,它现在需要内核的帮助,这个机制就是系统调用. 2.系统调用的本质是 ...
- Nginx 限制并发连接和并发请求数配置
Nginx限制并发连接和并发请求数配置 by:授客 QQ:1033553122 测试环境 nginx-1.10.0 配置介绍 查看是否内置模块 # pwd /mnt/nginx-1.10.0 ...
- Nginx 日志格式配置介绍
Nginx日志格式配置介绍 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 配置例子 log_format main '$ ...
- Android Studio 无法预览xml布局视图:failed to load AppCompat ActionBar with unkNown error
问题如下: 解决方法: 找到res-->values-->styles.xml 文件 可以看到主题Them设置如下: 修改为: 界面预览可以正常显示
- 使用git将Android源码上传到github
下面举Android的Browser源码通过git保存到github上 首先在github.com官网new repository一个仓库 在Repository name哪里填入Browser然后创 ...