oracle的共享存储空间大小怎么看
oracle在表空间中创建表。参数解释?
oracle在表空间中创建表。参数解释?
1、能够对空闲空间产生影响的参数有两个:pctfree和pctused。对于手工管理的表空间,在特定段中的所有数据块,可使用两个空间管理参数pctfree和pctused来控制insert和update对空闲空间的使用。
当创建或修改表时可指定这两个参数。创建或修改一个拥有自己的索引段的索引时可指定pctfree参数。
pctfree参数为块中行的更新预留了空闲空间的最小百分比,默认值为10。
例如,假定在Createtable语句中指定了pctfree为20,则说明在该表的数据段内每个数据块的20%被作为可利用的空闲空间,用于更新已在数据块内存在的数据行。
其余80%是用于插入新的数据行,直到达到80%为止。
显然,pctfree值越小,则为现存行更新所预留的空间越少。
因此,如果pctfree设置得太高,则在全表扫描期间增加I/O,浪费磁盘空间;如果pctfree设置得太低,则会导致行迁移。
2、每个块都有一个块首部。这个块首部中有一个事务表。事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定。
这个事务表的初始大小由对象的INITRANS设置指定。
对于表,这个值默认为2(索引的INITRANS也默认为2)。
事务表会根据需要动态扩展,最大达到MAXTRANS个条目(假设块上有足够的自由空间)。所分配的每个事务条目需要占用块首部中的23~24字节的存储空间。注意,对于Oracle10g,MAXTRANS则会忽略,所有段的MAXTRANS都是255。也就是说,如果某个事物锁定了这个块的数据,则会在这个地方记录事务的标识,当然那个事务要先看一下这个地方是不是已经有人占用了,如果有,则去看看那个事务是否为活动状态。
如果不活动,比如已经提交或者回滚,则可以覆盖这个地方。
如果活动,则需要等待(闩的作用)3、storage指的是和存储相关的选项4、initial3M--分配给segment的第一个extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建。
minextents1--segment第一次创建时分配的extent数量maxextentsunlimited--随着segment中数据量的增长,最多可分配的extent数量无限制
oracle数据库,表空间和表之间是什么关系?
oracle表空间是个虚拟概念,表是实际存储在数据文件中的,但数据文件可以有多个,为了不用关心表实际是存储在哪个数据文件中,所以定义了个表空间的感念,把一个或者多个数据文件结合为一个逻辑上的表空间,表一定是属于某个表空间的