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.'+quotename(rtrim(@tname))+' rebuild'
end
else --如果碎片小于30,重新组织索引
begin
set @STR='alter index '+rtrim(@Iname)+' on dbo.'+quotename(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
转自:
http://blog.csdn.net/wzhibin/archive/2010/04/23/5520761.aspx做了一些小的修改
分享到:
相关推荐
SqlServer索引碎片整理脚本,提据库查询效率,很有用。
Sql server批量查询碎片率高的索引及自动重建脚本
SQL Server健康检查脚本通常包含一系列查询,这些查询旨在收集关于服务器状态的关键信息,包括但不限于CPU使用率、内存使用情况、磁盘I/O性能、数据库事务日志的增长、备份状况、索引碎片、锁和阻塞等。通过执行这些...
在SQL Server 2005中,数据库管理与开发涉及众多方面,包括但不限于数据查询、存储过程、触发器、索引优化、备份恢复、性能调优等。以下是一些基于SQL Server 2005的实际工作和开发中常用且实用的脚本知识点: 1. *...
microsoft sql server 索引碎片整理,三种方案,第二种方案经过验证,能大大提高数据库重建索引速度。260GB数据库,联机模式下最多一个半小时搞定
1. **下载 SSMSEE 安装包**:从微软官方网站或其他可信来源下载 SQLServer2005_SSMSEE.msi 文件。 2. **运行安装程序**:双击安装包启动安装向导,按照提示完成安装过程。 3. **配置连接选项**:首次打开 SSMSEE 后...
5. **SQLServer2000经典脚本**: SQL Server 2000虽然较旧,但仍有大量遗留系统在运行。经典脚本可能包含性能优化、备份恢复、索引管理、安全设置等实用脚本。例如,定期清理无用记录、设置存储过程权限、检查表的...
《SQL Server数据库巡检手册》是一份详细的指南,旨在帮助管理员对SQL Server环境进行系统性的检查和维护。这份文档发布于2015年9月15日,分为三个主要部分,分别是“巡检报告”、“巡检脚本”和“巡检方法”。通过...
此外,定期执行维护任务,如更新统计信息、碎片整理和索引重建,也是保持系统高效运行的关键。 九、服务与支持 SQL Server 2005提供多种服务,如SQL Server Agent自动化任务,Service Broker实现异步消息传递,以及...
处理模式/数据差异没有麻烦 比较不同SQLServer实例中的数据并生成同步脚本。 管理源代码管理中的数据库更改 做一个管理源控制中的数据库更改的做法。通过查看更改历史记录,在不同修订版本和合并之间导航,获得好处...
5. 性能优化:通过脚本可以创建和调整索引,监控性能,甚至自动化执行数据库维护任务,如统计信息更新和碎片整理。 6. 自动化测试:在持续集成和测试环境中,脚本可以帮助快速构建和销毁测试数据库,确保每次测试都...
9. **索引重建与碎片管理**:索引的碎片问题会影响查询性能,定期进行索引重建和碎片整理可以保持索引的高效性。 10. **并发控制**:理解事务隔离级别和锁机制,合理设置以平衡并发性能与数据一致性,是大型系统中...
比较不同SQLServer实例中的数据并生成同步脚本。 管理源代码管理中的数据库更改 做一个管理源控制中的数据库更改的做法。通过查看更改历史记录,在不同修订版本和合并之间导航,获得好处。 获取索引碎片...
《SQL Server 2005数据库管理与应用指南》是一本深入探讨SQL Server 2005技术的专著,其第16章的源码提供了丰富的实践案例和示例,帮助读者理解并掌握数据库管理和应用程序开发的关键概念。在这一章节中,作者飞狼-...
系统表是SQL Server内部结构的核心组成部分,它们存储了关于数据库、索引、用户、权限等所有元数据信息。理解这些系统表对于数据库管理员进行性能优化、故障排查和管理操作至关重要。 在SQL Server 2000中,系统表...
使用适当的维护脚本或工具可以有效地管理索引碎片,提高查询性能,并确保数据库系统稳定运行。在执行任何索引维护操作之前,务必备份数据,以防万一出现问题。同时,理解各种维护方法的优缺点,以及它们如何影响...
### SQL Server 2005 数据库收缩功能详解与实践 #### 一、数据库空间管理的重要性 在数据库管理中,合理有效地管理存储空间至关重要。一方面,随着业务的发展,数据库中的数据量不断增长,如何高效利用有限的存储...
### SQL Server 2005 性能调优 #### 一、SQL Server 应用程序性能调优 在进行SQL Server 2005应用程序性能调优时,需要关注以下几个方面: 1. **查询优化**:确保所有的查询都是高效的。这包括避免使用不必要的全...
8. **执行SQL Server作业**:除了上述任务外,还可以安排执行特定的SQL Server作业,比如定期清理不必要的数据或执行定制的脚本。 值得注意的是,日志传送(Log Shipping)功能并未包含在维护计划中,而是需要单独...
9. 数据库维护:定期执行维护任务,如统计更新、索引重建和碎片整理,对于保持数据库健康和高效至关重要。 10. 安全性和合规性:SQL Server提供了多种安全特性,如透明数据加密(TDE)、行级安全性、动态数据掩码和...