7 个解决方案
#1
1、看你删除的时机,系统繁忙时候,肯定有影响,当然如果这就是业务步骤里面的一环,此点可以忽略
2、看你提交的实际
commit的过快,会造成数据库单位时间内 事务 数量过大
commit的过慢,会影响数据库undo表空间的使用
2、看你提交的实际
commit的过快,会造成数据库单位时间内 事务 数量过大
commit的过慢,会影响数据库undo表空间的使用
#2
用delete删大量的数据,我看了下好像表空间的利用率没有降,有没有什么办法,感觉delete后有很多碎片之类,有清理办法吗。数据库不能停的哈。
#3
会锁表~~
会导致高水位
会导致高水位
#4
1)考虑延迟的块清除,在做大量的数据delete,建议应做一次查询,全表扫描。清除数据块中的uncommited的标记,以后的查询可以不用去undo里去找
2)考虑HWM的问题。insert以后提升hwm,delete并不降低hwm。而select做全表扫描时总是会扫描hwm以下得所有block。所以建议定期对该表进行整理。可以用
alter table yourtbname move tablespace indx;
alter table yourtbname move tablespace users;
并重建该表所对应得索引
2)考虑HWM的问题。insert以后提升hwm,delete并不降低hwm。而select做全表扫描时总是会扫描hwm以下得所有block。所以建议定期对该表进行整理。可以用
alter table yourtbname move tablespace indx;
alter table yourtbname move tablespace users;
并重建该表所对应得索引
#5
在业务空闲的时候,进行 shrink tablespace 或者 move table 或者 exp/imp expdp/impdp
shrink tablespace 10g开始支持
#6
你这个是把表空间对应的那个表移除了表空间吗?那以后的数据不存在这个表空间了?
#7
回复2楼
可以通过降低表的高水位线来实现
ALTER TABLE 表名 ENABLE ROW MOVEMENT;
#1
1、看你删除的时机,系统繁忙时候,肯定有影响,当然如果这就是业务步骤里面的一环,此点可以忽略
2、看你提交的实际
commit的过快,会造成数据库单位时间内 事务 数量过大
commit的过慢,会影响数据库undo表空间的使用
2、看你提交的实际
commit的过快,会造成数据库单位时间内 事务 数量过大
commit的过慢,会影响数据库undo表空间的使用
#2
用delete删大量的数据,我看了下好像表空间的利用率没有降,有没有什么办法,感觉delete后有很多碎片之类,有清理办法吗。数据库不能停的哈。
#3
会锁表~~
会导致高水位
会导致高水位
#4
1)考虑延迟的块清除,在做大量的数据delete,建议应做一次查询,全表扫描。清除数据块中的uncommited的标记,以后的查询可以不用去undo里去找
2)考虑HWM的问题。insert以后提升hwm,delete并不降低hwm。而select做全表扫描时总是会扫描hwm以下得所有block。所以建议定期对该表进行整理。可以用
alter table yourtbname move tablespace indx;
alter table yourtbname move tablespace users;
并重建该表所对应得索引
2)考虑HWM的问题。insert以后提升hwm,delete并不降低hwm。而select做全表扫描时总是会扫描hwm以下得所有block。所以建议定期对该表进行整理。可以用
alter table yourtbname move tablespace indx;
alter table yourtbname move tablespace users;
并重建该表所对应得索引
#5
在业务空闲的时候,进行 shrink tablespace 或者 move table 或者 exp/imp expdp/impdp
shrink tablespace 10g开始支持
#6
你这个是把表空间对应的那个表移除了表空间吗?那以后的数据不存在这个表空间了?
#7
回复2楼
可以通过降低表的高水位线来实现
ALTER TABLE 表名 ENABLE ROW MOVEMENT;