维护索引(4)——通过重组索引提高性能

前言:

如果碎片程度小于30%,建议使用重组而不是重建。因为重组不会锁住数据页或者数据表,并且降低CPU的资源。

总得来说,重组会清空当前的B-TREE,特别是索引的叶子节点,重组数据页和消除碎片。和重建不同,重组不会添加任何新数据页。

准备工作:

为了了解是否有必要重组索引,需要首先查看碎片程度,如果在10%以下,那一般没必要做什么维护,如果在10%~30%,就建议进行重组。

步骤:

1、 以下各种重组索引的方法:

  1. --不指定参数重组索引:
  2. ALTER INDEX [idx_refno] ON [ordDemo]
  3. REORGANIZE
  4. GO
  5. --重组表中所有索引:
  6. ALTER INDEX ALL ON [ordDemo]
  7. REORGANIZE
  8. GO
  9. --使用DBCC INDEXDEFRAG重建表上所有索引:
  10. DBCC INDEXDEFRAG('AdventureWorks','ordDemo')
  11. GO
  12. --使用DBCC INDEXDEFRAG重组表上一个索引:
  13. DBCC INDEXDEFRAG('AdventureWorks','ordDemo','idx_refno')
  14. GO

2、 DBCC INDEXDEFRAG命令同样是后续不建议继续使用的命令。

分析:

索引重组,也可以称为碎片重组,对单独索引的操作将使用单独的线程。不可以并行操作。所以同一时刻只有一个索引被操作。

重组并不产生新页,但是会压缩页,如果页面已经为空,将会移除这个页,所以填充因子选项是不需要的。同时,因为它不会锁住对象,所以总是联机处理。

重组同样需要sysadmin、db_onwer、db_ddladmin角色。

原文发布于微信公众号 - 我为Net狂(dotNetCrazy)

原文发表时间:2016-10-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大愚Talk

MySQL InnoDB引擎锁的总结

我们开的的各式各样系统中,系统运行需要CPU、内存、I/O、磁盘等等资源。但除了硬资源外,还有最为重要的软资源:数据。

24830
来自专栏杨建荣的学习笔记

百倍性能的PL/SQL优化案例(r11笔记第13天)

我相信你是被百倍性能的字样吸引了,不过我所想侧重的是优化的思路,这个比优化技巧更重要,而结果嘛,其实我不希望说成是百倍提升,“”自黑“”一下。 有一个真...

37190
来自专栏数据和云

巧用复合索引,有效降低系统IO

我们知道索引至关重要,合理的索引使用能够在很大程度上改善数据库的性能。然而很多人都会走入这样一个误区:走索引的SQL语句的性能一定比全表扫描好。真的是这样吗?今...

30390
来自专栏数据和云

【快讯】在线体验Oracle Database 12.2 SQL新特性

Oracle Database 12.2 已经让广大粉丝望眼欲穿,虽然文档已然发布,但是实验无从做起。 现在,可以通过 Oracle Live SQL 站点(文...

34150
来自专栏杨建荣的学习笔记

一次数据库响应慢的问题诊断(r6笔记第39天)

今天接到开发一个同事的电话,说前端系统那边反馈有一个查询很慢,初步怀疑是有一些并发或者锁之类的问题导致的。 接到问题之后,自己还是带着一些的紧迫感来处理的。 首...

28450
来自专栏架构师之路

InnoDB,5项最佳实践,知其所以然?

第一篇,说说MySQL两个最常用的存储引擎,MyISAM和InnoDB。照自己的理解,把一些知识点总结出来,不只说知识点,多讲“为什么”。 一、关于count...

10020
来自专栏idba

死锁案例之六

死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋...

9320
来自专栏代码世界

数据库三范式详解

范式的概念   为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计...

42680
来自专栏WindCoder

网易MySQL微专业学习笔记(十一)-MySQL业务优化与设计

这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL业务优化与设计”中的MySQL数据类型相关笔记。

13710
来自专栏杨建荣的学习笔记

MySQL中的反连接(r12笔记第45天)

关于Oracle的半连接,反连接,我一直认为这是一个能讲很长时间的话题,所以在我的新书《Oracle DBA工作笔记》中讲性能优化的时候,我花了不少的笔墨做...

27950

扫码关注云+社区

领取腾讯云代金券