`
wsql
  • 浏览: 11787001 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

SQLServer中的索引碎片处理

阅读更多

SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,定期处理索引碎片是一个必不可少的工作内容之一。 具体信息参考msdn

http://msdn.microsoft.com/zh-cn/library/ms189858.aspx 我工作中碰到一张表,有320万记录,数据表占用空间800多兆,所有索引碎片大于80%,甚至有100%,索引占用空间500兆,重新生成索引后占用空间减小到200多兆。 一个可以在SQL2005中测试的脚本

--drop database db_index_test --建立测试环境

create database db_index_test

go

use db_index_test

go

create table tbTest(rownum int identity(1,1),id varchar(100),date datetime)

go

create index index_id on tbTest(id) go

--插入测试数据,并适当删除一部分数据

declare @i int

set @i=1

while @i<10

begin

insert into tbTest(id,date)

select newid(),getdate() from syscolumns

delete from tbTest where rownum%2=0

set @i=@i+1

end

go

--检查索引

SELECT avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'tbTest'), NULL, NULL, NULL) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id where name='index_id'

go --重建索引

alter index index_id on tbTest rebuild go

--检查索引

SELECT avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'tbTest'), NULL, NULL, NULL) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id where name='index_id' --删除测试环境 go use master go drop database db_index_test

go

在sql的客户端工具SQL Server Management Studio中也可以手动检查并重建索引

分享到:
评论

相关推荐

    SQL_Server2005索引碎片分析和解决方法

    对't_exam' 表执行DBCC SHOWCONTIG,结果如下:  - 扫描页数.....................................: 20229  - 扫描扩展盘区数.......以上结果显示:逻辑扫描碎片和扩展盘区扫描碎片都非常大,需要对索引碎片进行处理。

    C#写的批量监控sqlserver表索引碎片监控看板工具

    程序员或者运维工作中经常会遇到表的索引碎片过多而导致的数据处理缓慢,锁表等情况,针对这种情况制作了一个监控看板,可以监控不同数据库ip下的表索引碎片情况,可以报警提示出来,上传内容包含源代码,希望C#...

    让索引有序:用SQL Server 2005的新方法来移除索引碎片.pdf

    让索引有序:用SQL Server 2005的新方法来移除索引碎片.pdf

    Devart dbForge Studio for SQL Server Enterprise 破解版

     比较不同SQLServer实例中的数据并生成同步脚本。  管理源代码管理中的数据库更改  做一个管理源控制中的数据库更改的做法。通过查看更改历史记录,在不同修订版本和合并之间导航,获得好处。  获取索引碎片...

    最新 Devart dbForge Studio for SQL Server Enterprise 5.5破解版

    处理模式/数据差异没有麻烦 比较不同SQLServer实例中的数据并生成同步脚本。 管理源代码管理中的数据库更改 做一个管理源控制中的数据库更改的做法。通过查看更改历史记录,在不同修订版本和合并之间导航,获得好处...

    Devart dbForge Studio for SQL Server v5.2.177 Enterprise.和谐版

     比较不同SQLServer实例中的数据并生成同步脚本。  管理源代码管理中的数据库更改  做一个管理源控制中的数据库更改的做法。通过查看更改历史记录,在不同修订版本和合并之间导航,获得好处。  获取索引碎片...

    SQL Server 2008编程入门经典(第3版)

    9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种...

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQLServer2008查询性能优化 1/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    Devart dbForge Studio for SQL Server v5.2.177 Enterprise 破解版

    处理模式/数据差异没有麻烦 比较不同SQLServer实例中的数据并生成同步脚本。 管理源代码管理中的数据库更改 做一个管理源控制中的数据库更改的做法。通过查看更改历史记录,在不同修订版本和合并之间导航,获得好处...

    SQL Server 索引维护sql语句

    使用以下脚本查看数据库索引碎片的大小情况: 代码如下:DBCC SHOWCONTIG WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS 以下使用脚本来处理维护作业: 代码如下:/*Perform a ‘USE ’ to select the database ...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种...

    SQL.Server.2008编程入门经典(第3版).part1.rar

    9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQL查询安全性及性能优化

     索引碎片--维护阶段定期检测索引是否有碎片,如果过多就要对索引重新组织和重建  索引失效或者没有使用索引,例如:  or语句使用了没有索引的字段  对有索引的字段进行了某些函数操作 避免对索引字段进行...

Global site tag (gtag.js) - Google Analytics