博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle优化:避免全表扫描(高水位线)
阅读量:6992 次
发布时间:2019-06-27

本文共 585 字,大约阅读时间需要 1 分钟。

      如果我们查询了一条SQL语句,这条SQL语句进行了全表扫描,那到底是扫描了多少个数据块呢?是表有多少数据,就扫描多少块吗?不是的。而是扫描高水位线一下的所有块。有的时候有人经常说,我的表也不大呀,怎么查询了这么久,其实奥秘就是高水位线了

      在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。也就是说,这条高水位线在日常的增删操作中只会上涨,不会下跌。HWM通常增长的幅度为一次5个数据块.

     这也就产生一种我们经常遇到的情况,产生大量碎片。如何消除碎片呢?有move和shrink两种方法。1.如果你只是收缩空间,数据增长很慢,那用shrink可以但是如果数据增长很快的话,用move就比较合适。2.move从segment的底部开始,move这些rows到segment的头部。Shrink则是delete/insert相结合,这样会产生非常多的UNDO和REDO。(move和shrink之后,索引会失效,需要重建索引)推荐使用move。

    

转载于:https://www.cnblogs.com/oraclelike/p/6146436.html

你可能感兴趣的文章
Linux的基本配置
查看>>
Django框架之模型层(二)
查看>>
who 查看系统登录用户
查看>>
java语言中application异常退出和线程异常崩溃的捕获方法,并且在捕获的钩子方法中进行异常处理...
查看>>
架构师速成6-初中 分类: 架构师速成 2015-0...
查看>>
最新---java多线程下载文件
查看>>
【二】调通单机版的thrift-C++版本
查看>>
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
查看>>
ASP.NET MVC 主要的四种过滤器和三种具体实现类
查看>>
Python中的正则表达式
查看>>
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射...
查看>>
(转)结构体中使用string所引发的问题
查看>>
Linux查看网卡流量(转)
查看>>
论文修改(1)
查看>>
[javaEE] web应用的目录结构&配置虚拟主机
查看>>
[PHP] 数据结构-反转链表PHP实现
查看>>
MySQL 如何利用一条语句实现类似于if-else条件语句的判断
查看>>
jQuery和Zepto冲突问题【解决】
查看>>
machinekey生成工具 v1.0 官方最新版
查看>>
http server v0.1_mime.c
查看>>