表的维护和管理

时间:2021-09-27 19:50:39

如果在创建表时一些存储参数设置的不合适。可以使用DDL语句动态的修改PCTFREE和PCTUSED

SQL> alter table scott.product
  2  pctfree 20
  3  pctused 50;

Table altered.


alter table [用户名.]表名
allocate extent [([size 正整数[k|m]]
[datafile '文件名']
如果忽略了size选项,Oracle服务器将使用从dba_tables表中得来的next_extent的值来分配extent。如果省略了datafile选项,Oracle服务器将在包含该表的表空间中的一个文件中分配extent,要注意的是在datafile选项中所说明的文件必须属于该表所在的表空间。另外,dba_tables表中的next_extent值将不会受到手工extent分配的影响。当执行该命令时,Oracle服务器将不会重新计算下一个extent的大小。

例如:

SQL> select segment_name,tablespace_name,extents from dba_segments
  2  where owner='SCOTT' and segment_name like 'PRO%';

SEGMENT_NAME
--------------------------------------------------------------------------------
TABLESPACE_N    EXTENTS
------------ ----------
PRODUCT
USERS                 1


SQL> alter table scott.product
  2  allocate extent;

Table altered.

 

SQL> select segment_name,tablespace_name,extents from dba_segments
  2  where owner='SCOTT' and segment_name like 'PRO%';

SEGMENT_NAME
--------------------------------------------------------------------------------
TABLESPACE_N    EXTENTS
------------ ----------
PRODUCT
USERS                 2