Oracle创建表时Storage参数具体含义
本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义。
可用于:表空间、回滚段、表、索引、分区、快照、快照日志
| 参数名称 | 缺省值 | 最小值 | 最大值 | 说明 |
| INITIAL | 5(数据块) | 2(数据块) | 操作系统限定 | 分配给Segment的第一个Extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建。 |
| NEXT | 5(数据块) | 1(数据块) | 操作系统限定 | 第二个Extent的大小等于NEXT的初值,以后的NEXT值=前一NEXT大小乘以(1+PCTINCREASE/100),如果指定的值小于最小值,则按最小值创建。 如果在alter语句中改变NEXT的值,则下一个分配的Extent将具有指定的大小,而不管上一次分配的Extent大小和PCTINCREASE参数值。 |
| MINEXTENTS | 1(Extent) 回滚段为2个Extent |
1(Extent) 回滚段为2个Extent |
操作系统限定 | Segment第一次创建时分配的Extent数量 |
| MAXEXTENTS | 根据数据块大小而定 | 1(Extent) 回滚段为2个Extent |
无限制 | 随着Segment中数据量的增长,最多可分配的Extent数量 |
| PCTINCREASE | 50%
(Oracle816中为0%) |
0% | 操作系统限定 | 指定第三个及其后的Extent相对于上一个Extent所增加的百分比, 如果PCTINCREASE为0,则Segment中所有新增加的Extent的大小都相同,等于NEXT的值, 如果PCTINCREASE大于0,则每次计算NEXT的值(用上面的公式), PCTINCREASE不能为负数。 创建回滚段时,不可指定此参数,回滚段中此参数固定为0。 |
| OPTIMAL | ---- | 不能小于回滚段初始分配空间 | 操作系统限定 | 仅与回滚段有关,当回滚段因为增长、扩展而超过此参数的设定范围时,Oracle系统会根据情况动态地重新分配Extents,试图收回多分配的Extent。 |
| FREELISTS | 1 | 1 | 数据块大小限制 | 只能在CREATE TABLE、CLUSTER、INDEX中指定FREELISTS和FREELIST GROUPS参数。 模式对象中每一个自由列表组中自由列表的数量 |
| FREELIST GROUPS | 1 | 1 | 取决于Oracle并行实例的数量 | 用户创建的数据库对象的自由列表组的数量,只有用OPS并行服务器选项时才使用这一参数,一个实例对应一个组。 |
| BUFFER_POOL | ---- | ---- | ---- | 给模式对象定义缺省缓冲池(高速缓存),该对象的所有块都存储在指定的高速缓存中,对于表空间或回滚段无效。 |
建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值)
一旦建立了某个对象,它的INITIAL和MINEXTENTS参数不能修改(Oracle 816中可修改MINEXTENTS参数)
对于NEXT和PCTINCREASE的任何修改都只影响后来分配的那些Extent
在分配一个新Extent时,系统直接按NEXT的值分配一个Extent,
然后用公式:前一NEXT值*(1+PCTINCREASE/100) 计算出下一个应该分配的Extent的大小,
并把计算结果保存到相关数据字典的NEXT_EXTENT列上,做为下一个应该分配的Extent的大小。
CREATE TABLE test(a number)
STORAGE(
INITIAL 100K
NEXT 100K
MINEXTENTS 2
MAXEXTENTS 100
PCTINCREASE 100);
解释:
初始给test表分配两个Extent,
第一个Extent是100K,因INITIAL=100K;
第二个Extent是100K,因NEXT=100K;
假如因表内数据增长,需要分配第三个Extent,因PCTINCREASE是100,则
第三个Extent是200K=100K+100K;
第四个Extent是400K=200K+200K。
可通过数据字典表DBA_TABLES、ALL_TABLES、USER_TABLES查看参数设置情况,如:
select table_name,initial_extent,next_extent,
min_extents,max_extents,pct_increase from user_tables;
TABLE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
---------- -------------- ----------- ----------- ----------- ------------
TEST 106496 212992 2 100 100
转自http://blog.sina.com.cn/s/blog_9c5151b00102v5of.html
Oracle创建表时Storage参数具体含义的更多相关文章
- Oracle创建表时涉及的参数解析
1.oracle pctfree和pctused详解 http://www.cnblogs.com/linjiqin/archive/2012/01/16/2323320.html http:// ...
- oracle与mysql创建表时的区别
oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer ), mid ), time dat ...
- Oracle创建表空间和表
创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablesp ...
- Oracle创建表语句(Create table)语法详解及示例
创建表(Create table)语法详解1. ORACLE常用的字段类型ORACLE常用的字段类型有VARCHAR2 (size) 可变长度的字符串, 必须规定长度CHAR(size) 固定长度的字 ...
- Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...
- 使用hbase的api创建表时出现的异常
/usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...
- mysql创建表时,设置timestamp DEFAULT NULL报错1067 - Invalid default value for 'updated_at'
问题背景: 线上的linux服务器上的mysql服务器中导出数据库的结构.想要在本地创建一个测试版本 导出后再本地mysql上运行却报错 1067 - Invalid default value ...
- Oracle创建表及管理表
转自:https://www.linuxidc.com/Linux/2018-05/152566.htm 1. Oracle表的创建及管理 创建表包括三个要素,表名,列名,数据类型.每个表都有对应 ...
- oracle创建表空间,表及用户
oracle要创建表要首先创建表空间,当然默认是有表空间的.而mysql创建表时,会自动创建表空间,myisam会自动建三个文 件.MYD,.MYI,.frm.innodb呢,如果没有配置独立表空间的 ...
随机推荐
- 基础数据类型的补充和深浅copy
一:关于str 的操作方法补充 1,s.isspace() 判断字符串是否只由空格组成,是,为True,否则,为False. s = ' ' #只能是以至少一个空格组成的字符串(全空格) prin ...
- 顺序一致性内存模型与JMM的“顺序一致性”
顺序一致性内存模型是一个被计算机科学家理想化了的理论参考模型,它为程序员提供了极强的内存可见性保证.顺序一致性内存模型有两大特性.1)一个线程中的所有操作必须按照程序的顺序来执行.2)(不管程序是否同 ...
- 解决 vmware workstations 14 开启虚拟机黑屏
某些朋友在使用vmware workstations 14创建或者开启虚拟机时发现黑屏,但其实系统的正常启动的,只是无画面显示. 1.以管理员方式启动命令行 2.修复LSP 在CMD中输入 netsh ...
- i2c总线的oled12864屏的u8x8运用总结
github网址链接 https://github.com/olikraus/u8g2/wiki/u8x8reference#print 用到的库文件 #ifdef U8X8_HAVE_HW_SPI ...
- 【笔记】vue-cli 打包后路径问题出错的解决方法
几天之前打包自己的vue 项目上传到远程服务器上面 但是遇到了如下几个问题: 1. 线上浏览页面时是空白页面 2. 打包后资源文件(js, css 文件)引用的路径不正确 3. 开发环境中使用到的如: ...
- java —— 内部类
_ 普通内部类 静态内部类 局部内部类 匿名内部类 内部类 内部类是定义在另一个类中的类,定义内部类会起到的作用有以下三点: 1.内部类方法访问该类定义所在的作用域中的数据,包括私有的数据. 2.内部 ...
- junit测试套件
在实际项目中,随着项目进度的开展,单元测试类会越来越多,可是直到现在我们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的.为了解决这个问题,JUnit 提供了一种批量运行测试类的方法, ...
- Web应用基础
B-S架构 架构的发展 1,c/s架构 (client客户端-server服务端) (胖客户端:要求客户端运行业务:把业务放到服务器端,则是瘦客户端) 典型的c/s应用 ...
- c++ singleton单例模式
方法1:加锁的经典懒汉实现: class singleton { public: static pthread_mutex_t mutex; static singleton* initance(); ...
- ios MVVM实践 刷新网络请求+tableView展示数据
[实现效果] [目录结构相关] 此示例展示用的是MVVM结构形式,表述如下 M:数据Model的存储,可以用来对属性进行处理.(即胖model概念,上图中xx万人订阅这个处理方法写在Model内) V ...