一、查看碎片占用情况

SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName,
ind.name AS IndexName, indexstats.index_type_desc AS IndexType,
indexstats.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
INNER JOIN sys.indexes ind
ON ind.object_id = indexstats.object_id
AND ind.index_id = indexstats.index_id
WHERE indexstats.avg_fragmentation_in_percent > 30
ORDER BY indexstats.avg_fragmentation_in_percent DESC

说明:为了获得最佳性能,avg_fragmentation_in_percent的值应尽可能接近零。

二、sql server中index的REBUILD和REORGANIZE

--1.准备实验数据
select * into Employee from AdventureWorks2008R2.HumanResources.Employee;--2.查看使用空间:Employee    290            72 KB    56 KB    8 KB    8 KB
sp_spaceused Employee--3.创建聚集索引
create clustered index IX_BusinessEntityID on Employee(BusinessEntityID);--4.查看使用空间:Employee    290            80 KB    56 KB    16 KB    8 KB
sp_spaceused Employee--5.索引重建,清除fragment,并设定fillfactor为60
ALTER INDEX ALL ON Employee
REBUILD WITH (FILLFACTOR = 60, SORT_IN_TEMPDB = ON,STATISTICS_NORECOMPUTE = ON);--6.查看使用空间:Employee    290            144 KB    88 KB    16 KB    40 KB
sp_spaceused Employee

---不锁表,索引重建

ALTER INDEX ALL ON Tab_Dealer_InteractiveMessage
REORGANIZE
GO

---生成索引重建sql

SELECT distinct

concat('ALTER INDEX ALL ON ', OBJECT_NAME(ind.OBJECT_ID),' REORGANIZE - GO-') AS ReIndex
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
INNER JOIN sys.indexes ind  
ON ind.object_id = indexstats.object_id
AND ind.index_id = indexstats.index_id
WHERE indexstats.avg_fragmentation_in_percent > 30

---查询索引碎片sql
SELECT

concat('ALTER INDEX ALL ON ', OBJECT_NAME(ind.OBJECT_ID),' REORGANIZE - GO-') AS ReIndex,

OBJECT_NAME(ind.OBJECT_ID) AS TableName,
ind.name AS IndexName, indexstats.index_type_desc AS IndexType,
indexstats.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
INNER JOIN sys.indexes ind  
ON ind.object_id = indexstats.object_id
AND ind.index_id = indexstats.index_id
WHERE indexstats.avg_fragmentation_in_percent > 30
 
ORDER BY indexstats.avg_fragmentation_in_percent DESC

--DBCC SHOWCONTIG('Tab_Dealer_ProductPrice');

如何查看SQL Server的索引碎片情况并进行整理相关推荐

  1. SQL Server的索引碎片

    无论是什么关系型数据库,尤其在OLTP系统中,索引是提升数据访问速度的常用方式之一,但是不同类型的数据库,对索引碎片的处理可能会略有不同. 我们知道,索引碎片多了,意味着可能会扫描更多的数据块.消耗更 ...

  2. sql server 表索引碎片处理

    DBCC SHOWCONTIG (Transact-SQL) SQL Server 2005 其他版本 更新日期: 2007 年 9 月 15 日 显示指定的表或视图的数据和索引的碎片信息. 重要提示 ...

  3. SQL Server 聚集索引 clustered index 非聚集索引Nonclustered Indexes键查找查找Key Lookup执行计划过程详解

    SQL Server 聚集索引非聚集索引键查找过程详解 索引的相关术语 1 堆(Heap)是一种没有指定排序的数据结构,通俗的理解堆就像是按照顺序排放的杂物.在数据库里也即是对应没有聚集索引. 2 聚 ...

  4. 理解SQL Server中索引的概念,原理以及其他

    简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索 ...

  5. T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他(看了两次了,转了)

    简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索 ...

  6. sql server 群集_设计有效SQL Server群集索引

    sql server 群集 In the previous articles of this series (see bottom for a full index), we described, i ...

  7. 列顺序对SQL Server复合索引的影响

    In this article, we will explore the Composite Index SQL Server and the impact of key order on it. W ...

  8. 理解SQL Server中索引的概念,原理

    理解SQL Server中索引的概念,原理 摘自:http://51even.iteye.com/blog/1490412 简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索 ...

  9. Sql Server 监控 Job 执行情况

    由于最近数据库的部分job总是不能十分健康的执行,而监控起来只能登陆db服务器去查看错误日志,维护起来十分麻烦,并且job一般都是比较重要的,比如备份数据库或者清理数据库等等.网站这边,经常由于清理j ...

最新文章

  1. python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类
  2. python调用dll例子
  3. linux之账号管理
  4. Material Design之AppBarLayout总结
  5. 推荐一本学习生信的好书,新手友好,实战性强
  6. 【kubernetes系列】Pod篇实战操作
  7. gulp教程之gulp-imagemin压缩图片
  8. vue.js java php_听说Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js
  9. 多Resource文件的相互引用与合并问题及其解决方案
  10. .net 遍历数组找重复值写入一个新数组_第二轮 Python 刷题笔记一:数组
  11. 六石管理学:切勿通过扯皮折腾别人,一句你不要管了即可
  12. java 连接163邮箱_java调用163邮箱发送邮件
  13. 第4阶段 Mysql数据库
  14. 支付宝支付开发—当面付条码支付和扫码支付
  15. python快速排名seo代码_seo评价机制图(python快速排名seo)
  16. Summary:Fater Rcnn
  17. 【pytorch】ResNet18、ResNet20、ResNet34、ResNet50网络结构与实现
  18. ERROR: Failed building wheel for ctcdecode
  19. java.sql.SQLException: 无效的列类型
  20. ES6结构赋值,一篇就够

热门文章

  1. 建筑师妹岛和世为日本西武设计新型旗舰“球形车头”列车
  2. u盘怎么进入pe系统并修改系统密码
  3. 第一次使用linux电脑,计算机基础与Linux初次亲密接触第一天(马哥)
  4. 树莓派控制4路5v继电器开关
  5. 【转载必读】如何应对美国警察——留学生一定要看
  6. 记一次 controller manager and scheduler 重复重启问题分析
  7. 电脑我的世界服务器怎么按键显示,我的世界功能按键大全 操作按键全介绍
  8. 金三银四跳槽季,java面试突击(100题)进大厂就这么简单
  9. 惊蛰时节,最好看的微信公众号图文排版,全在这里了
  10. 这样充满青春活力的微信公众号图文排版,你见过吗?