删除单个表中数据,但是这个表空间没减小.怎么优化它使其减小??

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
其中一个表(countrank) ,它是是用分区建立的,有14个分区,
还建立了一个约束条件(primary)叫countrankkey
里面的数据大楷有150万条数据.
1.我用查看当前用户每个表占用空间的大小:
执行--->Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
显示>>
Segment_Name, Sum(bytes)/1024/1024
countrankkey , 298.5625
请问为什么没有以countrank表名为名的Segment_Name,??
2.我又 执行-->ALTER TABLEcountrankDEALLOCATE UNUSED,再执行-->Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
显示>>
Segment_Name,Sum(bytes)/1024/1024
countrankkey , 280.5625
请问能用其它的办法使其变的空间再小一点????

3.就是这张表是经常的delete删除和insert添加数据,这样有什么办法让它,在删除数据时空间大小也清除掉 ????,因为删除数据表空间没变小,这样一直大下去,读取速度好慢,
谢谢大家来帮助我下,,,,,,,,,
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
在线等
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
delete 是不会释放空间的.可以考虑移出分区的方法减少表的大小.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
由于当时设计这个表的时候,就想分区可以使读取速度可以加快的,所以分区不能删除,现在就想减少表扫描时间,所以想到减小表空间!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
请有解决过类似问题的朋友近来看看啊~~~~在线等~~~
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
1,你看到的可能是索引段,估计是GLOBAL的索引
2,你的方法只能释放HWM以上的空间,如果真的要释放,可以考虑MOVE相应的分区
3,该问题不存在,delete释放的空间,下次insert是可以用的。除非不同的分区
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢你的回答..
由于分区里面有数据,删除分区表的一个分区后,查询该表的数据时显示,该分区中的数据已全部丢失 ,所以不敢用这个,
能否这样的移动表--> alter table 表名 move .
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
还有想问下索引问题..
上面的 表 有一个索引,据说建立分区的表,还有索引的话,以后维护需要从新建立索引,
想知道下,
是先删除原先的索引,在建立一个新的索引,??
还是,有什么其它的机制来覆盖它??
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
方法一(导致全局索引暂时不可用)
1 alter table table_name move partition partition_name;
2 alter index index_name rebuild nologging;
方法二(速度慢点)
1 alter table table_name move partition partition_name update global indexes;
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢,,,ggf0626
由于目前分区还很固定,所以分区不会动,索引也应该不会怎么去重新建吧,,,
希望能知道下,在表记录数目多,表有分区,表有全局索引,的情况下怎么能使读取,删除和写入速度更加快??/
在线~~等拉!~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行