日期:2014-05-17  浏览次数:21424 次

数据库频繁地删除数据有什么影响吗
数据库频繁地删除数据,时间久后对数据库性能有影响吗?或其它什么问题

------解决方案--------------------
1、看你删除的时机,系统繁忙时候,肯定有影响,当然如果这就是业务步骤里面的一环,此点可以忽略

2、看你提交的实际
   commit的过快,会造成数据库单位时间内 事务 数量过大
   commit的过慢,会影响数据库undo表空间的使用


------解决方案--------------------
引用:
1、看你删除的时机,系统繁忙时候,肯定有影响,当然如果这就是业务步骤里面的一环,此点可以忽略

2、看你提交的实际
   commit的过快,会造成数据库单位时间内 事务 数量过大
   commit的过慢,会影响数据库undo表空间的使用

用delete删大量的数据,我看了下好像表空间的利用率没有降,有没有什么办法,感觉delete后有很多碎片之类,有清理办法吗。数据库不能停的哈。
------解决方案--------------------
会锁表~~
会导致高水位
------解决方案--------------------
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;
并重建该表所对应得索引
------解决方案--------------------
引用:
引用:1、看你删除的时机,系统繁忙时候,肯定有影响,当然如果这就是业务步骤里面的一环,此点可以忽略

2、看你提交的实际
   commit的过快,会造成数据库单位时间内 事务 数量过大
   commit的过慢,会影响数据库undo表空间的使用
用delete删大量的数据,我看了下好像表空间的利用率没有降,有没有什么办法,……


在业务空闲的时候,进行 shrink tablespace 或者 move table 或者 exp/imp expdp/impdp
shrink tablespace 10g开始支持
------解决方案--------------------
引用:
1)考虑延迟的块清除,在做大量的数据delete,建议应做一次查询,全表扫描。清除数据块中的uncommited的标记,以后的查询可以不用去undo里去找

2)考虑HWM的问题。insert以后提升hwm,delete并不降低hwm。而select做全表扫描时总是会扫描hwm以下得所有block。所以建议定期对该表进行整理。可以用
alter table your……
你这个是把表空间对应的那个表移除了表空间吗?那以后的数据不存在这个表空间了?
------解决方案--------------------
引用:
引用:
1、看你删除的时机,系统繁忙时候,肯定有影响,当然如果这就是业务步骤里面的一环,此点可以忽略

2、看你提交的实际
   commit的过快,会造成数据库单位时间内 事务 数量过大
   commit的过慢,会影响数据库undo表空间的使用
用delete删大量的数据,我看了下好像表空间的利用率没有降,有没有什么办法,感觉delete后有很……






回复2楼
可以通过降低表的高水位线来实现

ALTER TABLE 表名 ENABLE ROW MOVEMENT;