欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

高水位线对有目录与无索引的带where条件的dml操作的影响

更新时间: 2014-01-05 02:10:43 责任编辑: Author_N1

 

高水位线对有索引与无索引的带WHERE条件的DML操作的影响
关于Oracle的高水位线,大量的delete语句不会回收空间,因此导致高水位线不断增高,但我理解只有select * from table;这种无条件的全表扫描时,它的性能才受到高水位线未降低的影响,如果应用中没有这种select * from table;的操作,只是有大量的带WHERE条件的delete和insert操作,那其实可以不用管高水位线,因为delete之后的insert还会利用高水位线以下的free块,不会造成过度的free块浪费,不知道对不对呢?

或者说,如果一张表没有索引,无论我用哪种WHERE条件SELECT、INSERT、UPDATE、DELETE,都是全表扫描,此时都会受到高水位线的影响,不是仅仅指SELECT * FROM TABLE;的情况?

因为是这样,建索引有问题,由于历史原因,建的复合索引只能帮助一部分应用,另一些应用因为SQL的条件不同可能无法用到索引,因此如果建了索引,这部分应用因DML操作还需要维护索引表,就可能比现在还慢。

所以我想看看如果通过减少历史数据和降低高水位线,是否可以缓解一下。

因此才产生了如上的高水位线问题。

谢谢指点!
--参考方法--
其实,在大数据 的今天,也谈不上浪费了。
若不这般操作,你有更优化的方法吗?
oracle在覆盖原被删除的空间,(有自己的管理机制)
--参考方法--
1、如果没索引,select,update,delete都会走FTS;
2、走fts比系统维护索引大开销要大的多;
3、如果数据量很大,海量的话,可以考虑分区;
4、可以采取方式降低hwm;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:10:43
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6581/
本文WWW.DOC100.NET DOC100.NET版权所有。