`
miss4813
  • 浏览: 102624 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server 2005索引碎片整理

 
阅读更多
select t.name,i.name,s.avg_fragmentation_in_percent from sys.tables t
join sys.indexes i on i.object_id=t.object_id
join sys.dm_db_index_physical_stats(db_id(),object_id('t2'),null,null,'limited') s
  on s.object_id=i.object_id and s.index_id=i.index_id



/*******************************************************/
/*         功能:SQL Server 2005索引碎片整理            */
/*              逻辑碎片>=30重建索引,<30重新组织索引   */
/*******************************************************/
/***********SQL Server 2005索引碎片整理*****************/
/**使用方法:将需要整理索引碎片的数据库设置为当前数据库**/
set nocount on
--使用游标重新组织指定库中的索引,消除索引碎片
--R_T层游标取出当前数据库所有表
declare R_T cursor
for select name from sys.tables
declare @T varchar(50)
open r_t
fetch next from r_t into @t
while @@fetch_status=0
begin
--R_index游标判断指定表索引碎片情况并优化
declare R_Index cursor
for select t.name,i.name,s.avg_fragmentation_in_percent from sys.tables t
  join sys.indexes i on i.object_id=t.object_id
  join sys.dm_db_index_physical_stats(db_id(),object_id(@T),null,null,'limited') s
   on s.object_id=i.object_id and s.index_id=i.index_id
declare @TName varchar(50),@IName varchar(50),@avg int,@str varchar(500)
open r_index
fetch next from r_index into @TName,@Iname,@avg
while @@fetch_status=0
begin
  if @avg>=30  --如果碎片大于30,重建索引
  begin
   set @str='alter index '+rtrim(@Iname)+' on dbo.'+rtrim(@tname)+' rebuild'
  end
  else   --如果碎片小于30,重新组织索引
  begin
   set @STR='alter index '+rtrim(@Iname)+' on dbo.'+rtrim(@tname)+' reorganize'
  end
  PRint @str
  exec (@str)  --执行
  fetch next from r_index into @TName,@Iname,@avg
end
--结束r_index游标
close r_index
deallocate r_index
fetch next from r_t into @t
end
--结束R_T游标
close r_t
deallocate r_t
set nocount off
分享到:
评论

相关推荐

    Sql数据库索引碎片整理脚本

    SqlServer索引碎片整理脚本,提据库查询效率,很有用。

    SQLServer索引碎片和解决方法

    详细讲解了外部索引和内部索引的检测、清理方法

    提升SQL Server速度 整理索引碎片

    凭经验,这是索引碎片问题。检查索引碎片DBCC SHOWCONTIG(表),得到如下结果: DBCC SHOWCONTIG 正在扫描 ‘A’ 表… 表: ‘A’(884198200);索引 ID: 1,数据库 ID: 13 已执行 TABLE 级别的扫描。 – 扫描...

    2009 年度十大 SQL Server 技巧文章

     碎片整理后重建索引  恢复完整备份  删减事务日志  人工通读错误日志 利用动态管理视图提高SQL Server索引效率 就如同数据库DBA了解的一样,合适的索引能够提高查询性能和应用程序可测量性。但是每个附加...

    mssql 索引碎片整理重建脚本

    microsoft sql server 索引碎片整理,三种方案,第二种方案经过验证,能大大提高数据库重建索引速度。260GB数据库,联机模式下最多一个半小时搞定

    sql-index-console:用于检测SQL Server索引碎片并重建索引以消除碎片的实用程序

    SQL Index Console是用于检测SQL Server索引碎片和重建/重组索引以除去碎片的实用程序。 设置 特征 检测索引碎片 获取索引的详细列表,包括类型,大小,碎片数量和其他属性。 检测索引和表碎片,包括聚集索引碎片...

    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查询性能优化》为你提供了处理查询性能所...

    SQL_Server索引设计和调优技巧大全

    数据库运行调优操作介绍大全,包括索引技巧,索引碎片的整理等,作者:Matthew Schroeder 译者:陈柳/曾少宁

    SQL Server系统调优解决方案

    索引简介 索引是根据数据库表中一个或多个列的值进行排序的结构。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些...3. 整理指定的表或视图的聚集索引和辅助索引碎片(dbcc indexefrag)

    SQL Server误区30日谈 第29天 有关堆碎片的误区

    误区 #29:可以通过对堆建聚集索引再DROP后进行堆上的碎片整理Nooooooooooooo!!! 对堆建聚集索引再DROP在我看来是除了收缩数据库之外最2的事了。 如果你通过sys.dm_db_index_physical_stats(或是老版本的DBCC ...

    SQL查询安全性及性能优化

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

    Tools索引重建工具.rar

    检索全局sqlserver表,检查碎片率大于30并且数据量大于2500也的表,进行索引重建,从而提高查询效率,使用时直接放在BIN-DEBUG文件夹下即可,并自动检索配置文件

    mysql笔记,mysql优化图解

    h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM) 什么样的表才是符合3NF (范式) 表的范式,是首先符合1NF, 才能满足2NF , 进一步满足3NF 1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解,...

    Win7的81个“运行”命令集

    Win7的81个“运行”命令集 calc 计算器 certmgr.msc 证书管理实用程序 ...dfrg.msc 磁盘碎片整理程序 diskmgmt.msc 磁盘管理实用程序 drwtsn32 系统医生 dvdplay DVD播放器 dxdiag 检查DirectX信息 eudcedit 造字程序

    WIN7命令表

    win7命令的详细介绍和使用方法cleanmgr--打开磁盘清理工具 compmgmt.msc---计算机管理  conf----启动 netmeeting  charmap---启动字符映射表  calc----启动计算器 ... dfrg.msc--磁盘碎片整理程序

    win7 cmd命令大全

    cleanmgr–打开磁盘清理工具 compmgmt.msc---计算机管理 ...dfrg.msc–磁盘碎片整理程序 devmgmt.msc--- 设备管理器 drwtsn32–-- 系统医生 dxdiag–--检查DirectX信息 dcomcnfg–打开系统组件服务

Global site tag (gtag.js) - Google Analytics