打赏

SQL Sever的性能优化系列-索引碎片

我现在有两个问题,第一,碎片是什么;第二,碎片是怎么产生。
第一、碎片是什么?
说到碎片,我一般有两个疑惑,这是碎片是类似于磁盘碎片的吗?答案无非只有两个,一个是是,一个是不是,那么我想说的是那么是什么,我们来看看有什么事实可以说明这一切,

在图片上我们可以看到碎片两个字,
然后我们可以看到我点击分析碎片之后有另外一张图片效果:

显然这个是可以碎片整理之后可以提高性能的。不过我疑惑的是索引是B+树排序的,也就是说二叉树排序的,举个例子在建立索引的情况下,我们要知道怎么知道有碎片产生了,明显是看到上面那图,我第一反应就是整理碎片后性能会提高。
但是我发现跟我看的书不一样,比如一些书会说提高索引会提高索引效率,但是用久了会产生碎片,也就是说性能会降低。这个是性能指的是数据库查询性能,而不是磁盘碎片吧。
一般产生碎片,整理有两种方式,一种是删除掉索引重新生成索引。比如插入的动作比较少的情况下,在合适的时候,重新新建索引是可取的。前面那个比如意思是插入的动作多的情况下,重建索引是不可取的。如果我不知道是否插入比较多的情况下,我只能从数据库在新建索引后修改索引。
第二、碎片怎么整理?
我不喜欢敲命令。

这个参考了:https://www.cnblogs.com/java-oracle/p/5401731.html

posted @ 2020-08-28 16:07  JoeZhu  阅读(260)  评论(0编辑  收藏  举报