十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
与你分享 ORA-01555 错误的几种解决方案,一般来说可以采用 下
创新互联公司服务项目包括鸡冠网站建设、鸡冠网站制作、鸡冠网页制作以及鸡冠网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,鸡冠网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到鸡冠省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
面的方法:
适当地设置参数 UNDO_RETENTION (要大于执行运行时间最长的事务所需的时间)。可以用
V$UNDOSTAT 来确定长时间运行的查询的持续时间。另外,要确保磁盘上已经预留了足够的空间 ,
使 undo 段能根据所请求的 UNDO_RETENTION 增大。
使用手动 undo 管理时加大或增加更多的回滚段。这样在长时间运行的查询执行期间,覆 盖
undo 数据的可能性就能降低。
减少查询的运行时间(调优)。如果可能的话,这绝对是一个好办法,所以应该首先尝试 这
种方法。这样就能降低对 undo 段的需求,不需求太大的 undo 段。这种方法可以解决上述的所
有 3 个问题。
收集相关对象的统计信息。这有助于避免生成大的undo。由于大批量的 UPDATE 或INSERT 会导致块清除( block cleanout ),所以需要在大批量 UPDATE 或大量加载之后以某种方
式收集统计信息。 还有一个就是重新设置大一点的undocreate undo tablespace undo_bigdatafile size 2g(让后用数据文件加到足够大)
autoextend off alter system set undo_tablespace = undo_big(切换)
这种问题一般是undo表空间太小或者undo_retention的值设置过短导致。当然也可能是数据量过大,那需要优化下sql。
在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache。
其语法为:
alter session set events 'immediate trace name flush_cache level 1';
或者:
alter session set events = 'immediate trace name flush_cache';
类似的也可以使用alter system系统级设置:
alter system set events = 'immediate trace name flush_cache';
在Oracle10g中,Oracle提供一个新的特性,可以通过如下命令刷新Buffer Cache:
alter system flush buffer_cache;