数据库存储碎片!请高手帮忙

qzg 2004-09-02 09:57:03
对于ORACLE当中数据的反复存储和删除,造成碎片过多。如何才能重新组织,使消失碎片。
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shouhuzhe 2004-09-02
  • 打赏
  • 举报
回复
1.快速整理破碎的表(在Oracle8i里边才可以这样使用)

ALTER TABLE table_name MOVE ( TABLESPACE XXX);

如何移动一张表所在的表空间

方法一:

1. Export 这张表
2. Drop这张表
3. Create table xxx tablespace xxx;
4. Imp Ignore=y

还要注意的一点是,所有要读取这张表的PL/SQL储存过程都会失效。需要重新编译。

1. SELECT * FROM DBA_OBJECTS WHERE STATUS = 'INVALID';

2. 对这些包,函数,过程重新编译。
zmgowin 2004-09-02
  • 打赏
  • 举报
回复
1、
select tablespace_name,count(*) from dba_free_space group by tablespace_name

alter tablespace tablespacename coalesce;
2、
exp->imp
pgwron 2004-09-02
  • 打赏
  • 举报
回复
心情极度不好,没分也顶
LGQDUCKY 2004-09-02
  • 打赏
  • 举报
回复
这要看你参数设置,如果表空间PCTINCREASE不为0,系统会定期启动SMON,合并表空间
中相领的存储碎片,

也可以手工合并碎片,

alter tablespace <空间名> coalesce;

使用语句可以监视碎片的状态

select ,block_id,bytes,blocks from dba_free_space

where tablespace_anme=<空间名>

order by block_id;
北极海hein 2004-09-02
  • 打赏
  • 举报
回复
同意 LGQDUCKY(飘)

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧