刚刚开始学习oracle,遇到一些问题请各位高手帮忙。只要解答正确均给分,详细者多给分,分数不够可以再加!谢谢各位啦!
CREATE TABLESPACE spTest
LOGGING
DATAFILE '$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M
AUTOEXTEND ON NEXT 128M MAXSIZE 512M
BLOCKSIZE 4096 EXTENT MANAGEMENT LOCAL UNIFORM size 204800
SEGMENT SPACE MANAGEMENT AUTO;create table tbTest
(
a varchar2(64) not null,
b number(8) not null,
c char(19) not null
)
tablespace spTest
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 400K
next 400K
minextents 1
maxextents unlimited
pctincrease 0
);
问题:1)AUTOEXTEND ON NEXT 128M MAXSIZE 512M是什么意思?表空间spTest有多大,256M还是512M?
2) BLOCKSIZE 4096 EXTENT MANAGEMENT LOCAL UNIFORM size 204800是什么意思?
3)pctfree 10 pctused 40 initrans 1 maxtrans 255是什意思?
4) storage
(
initial 400K
next 400K
minextents 1
maxextents unlimited
pctincrease 0
);是什么意思?
CREATE TABLESPACE spTest
LOGGING
DATAFILE '$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M
AUTOEXTEND ON NEXT 128M MAXSIZE 512M
BLOCKSIZE 4096 EXTENT MANAGEMENT LOCAL UNIFORM size 204800
SEGMENT SPACE MANAGEMENT AUTO;create table tbTest
(
a varchar2(64) not null,
b number(8) not null,
c char(19) not null
)
tablespace spTest
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 400K
next 400K
minextents 1
maxextents unlimited
pctincrease 0
);
问题:1)AUTOEXTEND ON NEXT 128M MAXSIZE 512M是什么意思?表空间spTest有多大,256M还是512M?
2) BLOCKSIZE 4096 EXTENT MANAGEMENT LOCAL UNIFORM size 204800是什么意思?
3)pctfree 10 pctused 40 initrans 1 maxtrans 255是什意思?
4) storage
(
initial 400K
next 400K
minextents 1
maxextents unlimited
pctincrease 0
);是什么意思?
4 存储的初始大小是400K,下一个是400K,最小数量是1,最大不限制
表空间自动增加,每次增加128M的空间,最多增加到512M,
从DATAFILE '$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M 看,表空间初始大小256M 2) BLOCKSIZE 4096 EXTENT MANAGEMENT LOCAL UNIFORM size 204800是什么意思?
BLOCKSIZE 4096——指定表空间内的非标准块大小为4096个字节
EXTENT MANAGEMENT LOCAL UNIFORM size 204800——
指定此表空间为本地管理类表空间,每个扩展都是204800个字节,且位图中的每个位描述为204800/4096=50块。
3)pctfree 10 pctused 40 initrans 1 maxtrans 255是什意思?
4) storage
(
initial 400K
next 400K
minextents 1
maxextents unlimited
pctincrease 0
);是什么意思?
3和4我回去再看看我的笔记,有些忘了。。
关于1)的问题,是不是无论前面的数据文件给多大,最后表空间大小的最大值都取决于MAXSIZE
例如: DATAFILE '$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M ,
'$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M
AUTOEXTEND ON NEXT 128M MAXSIZE 1024M
如此,表空间的最大值是不是1024M?
关于1)的问题,是不是无论前面的数据文件给多大,最后表空间大小的最大值都取决于MAXSIZE
例如: DATAFILE '$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M ,
'$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M
AUTOEXTEND ON NEXT 128M MAXSIZE 1024M
这个表空间最大值到底是1024M?还是(512+1024)M?还是(256+1024)M?
'$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M
AUTOEXTEND ON NEXT 128M MAXSIZE 1024M 是不是多写了中间那句。。
表空间最大应该是1024M
答:刚建立表空间spTest 时,初始化大小为256M,如果空间不够大了,自动增加,每次增加128M,但是增加并不是无限制的,如果表空间增加到512M则不会再继续增加了。
2) BLOCKSIZE 4096 EXTENT MANAGEMENT LOCAL UNIFORM size 204800是什么意思?
答:BLOCKSIZE 4096-》指定表空间内的非标准块大小为4096个字节
EXTENT MANAGEMENT LOCAL UNIFORM size 204800—》指定此表空间为本地表空间,每个扩展区都是204800个字节,且位图中的每个位描述为204800/4096=50块。
3)pctfree 10 pctused 40 initrans 1 maxtrans 255是什意思?
答:表空间空闲10%,已经应用了40%,初始事务数1 最大255
4) storage
(
initial 400K
next 400K
minextents 1
maxextents unlimited
pctincrease 0
);
答:初始给tbTest 表分配两个Extent(区),第一个Extent是400K,因initial 400K
第二个Extent是400K,因next 400K。
如果因表内数据增长,需要分配第三个Extent,因PCTINCREASE是0,则
第三个Extent是400K=400K+0K
可通过数据字典表DBA_TABLES、ALL_TABLES、USER_TABLES查看参数设置情况,如:
select table_name,initial_extent,next_extent,min_extents,max_extents,pct_increase from user_tables;
一旦建立了某个对象,它的INITIAL和MINEXTENTS参数不能修改(Oracle 816中可修改MINEXTENTS参数)
对于NEXT和PCTINCREASE的任何修改都只影响后来分配的那些Extent
在分配一个新Extent时,系统直接按NEXT的值分配一个Extent,
然后用公式:前一NEXT值*(1+PCTINCREASE/100) 计算出下一个应该分配的Extent的大小,
并把计算结果保存到相关数据字典的NEXT_EXTENT列上,做为下一个应该分配的Extent的大小。
'$ORADATA_DICT/$ORACLE_SID/spCallTestIdx.DBF' SIZE 256M
AUTOEXTEND ON NEXT 128M MAXSIZE 1024M 是不是多写了中间那句。。
表空间最大应该是1024M
参考了一下帮助文档,
AUTOEXTEND ON NEXT 128M MAXSIZE 1024M
不是指表空间整体的扩展情况,仅仅是指spCallTestIdx.DBF这个文件的扩展情况
至于这个文件的最大空间是1024M,还是1024M+256M,这个从英文的角度来说,不好解释
Use the MAXSIZE clause to specify the maximum disk space allowed for automatic extension of the datafile
楼主可以设置一个小一点的表空间试一下