Oracle创建表时Storage参数具体含义

在Oracle数据库创建新表时Storage的参数具体含义。


  可用于:表空间、回滚段、表、索引、分区、快照、快照日志


参数名称缺省值最小值最大值说明
INITIAL5(数据块)2(数据块)操作系统限定分配给Segment的第一个Extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建。
NEXT5(数据块)1(数据块)操作系统限定第二个Extent的大小等于NEXT的初值,以后的NEXT值=前一NEXT大小乘以(1+PCTINCREASE/100),如果指定的值小于最小值,则按最小值创建。
如果在alter语句中改变NEXT的值,则下一个分配的Extent将具有指定的大小,而不管上一次分配的Extent大小和PCTINCREASE参数值。
MINEXTENTS1(Extent)
回滚段为2个Extent
1(Extent)
回滚段为2个Extent
操作系统限定Segment第一次创建时分配的Extent数量
MAXEXTENTS根据数据块大小而定1(Extent)
回滚段为2个Extent
无限制随着Segment中数据量的增长,最多可分配的Extent数量
PCTINCREASE50%


(Oracle816中为0%)
0%操作系统限定指定第三个及其后的Extent相对于上一个Extent所增加的百分比,
如果PCTINCREASE为0,则Segment中所有新增加的Extent的大小都相同,等于NEXT的值,
如果PCTINCREASE大于0,则每次计算NEXT的值(用上面的公式),
PCTINCREASE不能为负数。
创建回滚段时,不可指定此参数,回滚段中此参数固定为0。
OPTIMAL----不能小于回滚段初始分配空间操作系统限定仅与回滚段有关,当回滚段因为增长、扩展而超过此参数的设定范围时,Oracle系统会根据情况动态地重新分配Extents,试图收回多分配的Extent。
FREELISTS11数据块大小限制只能在CREATE TABLE、CLUSTER、INDEX中指定FREELISTS和FREELIST GROUPS参数。
模式对象中每一个自由列表组中自由列表的数量
FREELIST GROUPS11取决于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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Oracle中,可以使用CREATE TABLESPACE语句来创建表空间。语法如下: CREATE TABLESPACE tablespace_name DATAFILE '/path/to/datafile.dbf' SIZE <size> [M|G] [ONLINE] [PERMANENT] [LOGGING | NOLOGGING] [EXTENT MANAGEMENT LOCAL | DICTIONARY] [BLOCKSIZE <size>] [SEGMENT SPACE MANAGEMENT AUTO | MANUAL]; 其中,tablespace_name为表空间名称,DATAFILE '/path/to/datafile.dbf' SIZE <size> [M|G]表示数据文件名和大小。 例如,以下命令可以创建一个名为"mytbs"的表空间,数据文件为"/u01/oradata/mydb/mytbs.dbf",大小为200MB: CREATE TABLESPACE mytbs DATAFILE '/u01/oradata/mydb/mytbs.dbf' SIZE 200M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; ### 回答2: Oracle创建表空间的步骤如下: 1. 首先,我们需要登录到Oracle数据库中的系统用户,例如SYS或SYSTEM。 2. 使用CREATE TABLESPACE语句来创建表空间。该语句的基本语法如下: CREATE TABLESPACE 表空间名 DATAFILE 文件路径 SIZE 表空间大小; 其中,表空间名是要创建的表空间的名称,文件路径是表空间的数据文件存放路径,大小是表空间的初始大小。 3. 如果需要指定数据文件的大小和自动扩展的设置,可以在CREATE TABLESPACE语句中添加更多的参数选项。例如: CREATE TABLESPACE 表空间名 DATAFILE 文件路径 SIZE 表空间大小 AUTOEXTEND ON NEXT 下一个文件大小 MAXSIZE 最大文件大小; 其中,AUTOEXTEND ON表示表空间自动扩展,NEXT表示下一个数据文件的大小,MAXSIZE表示表空间的最大文件大小。 4. 如果想要指定表空间的数据文件存放在特定的磁盘组或存储目录下,可以使用以下语法: CREATE TABLESPACE 表空间名 DATAFILE 表空间名文件路径 SIZE 表空间大小 STORAGE ( DISKGROUP 磁盘组名称 [FILE_DISTRIBUTION] ); 其中,DISKGROUP指定了数据文件存放的磁盘组名称,FILE_DISTRIBUTION指定了文件分布策略。 5. 创建表空间之后,可以使用ALTER TABLESPACE语句对表空间进行修改。例如,可以修改表空间的大小、文件路径或者其他属性。 以上就是在Oracle创建表空间的基本步骤和语法。通过创建表空间,我们可以为数据库中的表和索引提供独立的存储空间,并进行更加灵活和有效的管理。 ### 回答3: Oracle数据库中,表空间是用来存储数据库对象(如表、索引、视图)的逻辑存储单元。 要创建一个表空间,首先需要具有SYSDBA权限或者DBA角色。这样可以使用sys用户登录数据库。 接下来,可以使用以下SQL语句来创建表空间: CREATE TABLESPACE 表空间名称 DATAFILE '数据文件路径和名称' SIZE 初始大小 AUTOEXTEND ON NEXT 扩展大小 MAXSIZE 最大大小 DEFAULT STORAGE (INITIAL 初始大小 NEXT 扩展大小); 其中,表空间名称为自定义的名称,数据文件路径和名称是表空间的物理文件路径和名称。初始大小、扩展大小和最大大小是以字节为单位指定的表空间大小。 需要注意的是,表空间的大小可以随调整。表空间的大小扩展可以通过AUTOEXTEND ON和NEXT参数来实现。 此外,DEFAULT STORAGE参数用于定义表空间的默认存储属性,包括初始大小和扩展大小。可以根据具体需要自定义这些属性。 创建表空间完成后,还可以通过ALTER TABLESPACE语句对表空间进行进一步的修改和管理。 总之,通过上述步骤可以成功创建一个Oracle表空间,并按需配置其大小和其他属性,以满足数据库存储的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值