Oracle 提供了表空间的碎片整理功能,用下面的语句试试吧: Alter tablespace ﹝tablespacename﹞ coalesce; --其中tablespacename是你需要整理的表空间的名字
谢谢lmljs 谢谢! 我试试啊
SQL> Alter tablespace ﹝system﹞ coalesce; Alter tablespace ﹝system﹞ coalesce * ERROR 位于第 1 行: ORA-00911: 无效字符 SQL> Alter system coalesce; Alter system coalesce * ERROR 位于第 1 行: ORA-02065: 非法的 ALTER SYSTEM 选项我的表空间名为system(默认的),是不是这个语句有问题?
SQL> Alter tablespace users coalesce;表空间已更改。SQL> Alter tablespace system coalesce 2 SQL> Alter tablespace system coalesce;表空间已更改。
你可以用下面的语句监控监控: select tablespace_name,count(*) chunks,max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name;(在system用户下直接执行就可以!)其中: Tablespace_name表示表空间名称。Chunks表示表空间中可用的空闲块;空闲块越多,该表空间的碎片状况就越严重。Max_chunk表示表空间上最大的可用块的大小。
Alter tablespace ﹝tablespacename﹞ coalesce;
--其中tablespacename是你需要整理的表空间的名字
SQL> Alter tablespace ﹝system﹞ coalesce;
Alter tablespace ﹝system﹞ coalesce
*
ERROR 位于第 1 行:
ORA-00911: 无效字符
SQL> Alter system coalesce;
Alter system coalesce
*
ERROR 位于第 1 行:
ORA-02065: 非法的 ALTER SYSTEM 选项我的表空间名为system(默认的),是不是这个语句有问题?
2
SQL> Alter tablespace system coalesce;表空间已更改。
这样(这条语句执行得很快啊)就行了? 还是不行啊:碎片依然存在 还是很慢啊...
试一试这个东西
http://sh.1xia.com/down.asp?id=20938&no=1
select tablespace_name,count(*) chunks,max(bytes/1024/1024) max_chunk from
dba_free_space group by tablespace_name;(在system用户下直接执行就可以!)其中:
Tablespace_name表示表空间名称。Chunks表示表空间中可用的空闲块;空闲块越多,该表空间的碎片状况就越严重。Max_chunk表示表空间上最大的可用块的大小。
但是,如果你是在服务器上用的话,记着先找台PC试一下