MSSQL Rebuild(重建)索引
2013-10-15 00:05
337 查看
前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql:
DECLARE @tablename VARCHAR(50)
DECLARE @indexname VARCHAR(50)
DECLARE @cmdsql NVARCHAR(MAX)
DECLARE index_cursor CURSOR
FOR
SELECT OBJECT_NAME(object_id) AS Table_Name ,
name
FROM sys.indexes
WHERE name IS NOT NULL
AND OBJECT_NAME(object_id) IN ( SELECT name
FROM sys.tables )
OPEN index_cursor
FETCH NEXT FROM index_cursor
INTO @tablename,@indexname
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cmdsql ='ALTER INDEX ['+@indexname+'] ON [dbo].['+@tablename+'] REBUILD WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )'
EXECUTE sp_executesql @cmdsql
PRINT @cmdsql
FETCH NEXT FROM index_cursor
INTO @tablename,@indexname
END
CLOSE index_cursor
DEALLOCATE index_cursor
希望对大家有帮助!
DECLARE @tablename VARCHAR(50)
DECLARE @indexname VARCHAR(50)
DECLARE @cmdsql NVARCHAR(MAX)
DECLARE index_cursor CURSOR
FOR
SELECT OBJECT_NAME(object_id) AS Table_Name ,
name
FROM sys.indexes
WHERE name IS NOT NULL
AND OBJECT_NAME(object_id) IN ( SELECT name
FROM sys.tables )
OPEN index_cursor
FETCH NEXT FROM index_cursor
INTO @tablename,@indexname
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cmdsql ='ALTER INDEX ['+@indexname+'] ON [dbo].['+@tablename+'] REBUILD WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )'
EXECUTE sp_executesql @cmdsql
PRINT @cmdsql
FETCH NEXT FROM index_cursor
INTO @tablename,@indexname
END
CLOSE index_cursor
DEALLOCATE index_cursor
希望对大家有帮助!
相关文章推荐
- MSSQL Rebuild(重建)索引
- MSSQL Rebuild(重建)索引
- sqlserver重建(rebuild)索引可以提高查询速度
- MSSQL自动重建出现碎片的索引的方法分享
- Scipts:生成重建索引的SQL脚本dba_rebuild_indexes.sql
- Scripts:重建索引的脚本(看懂脚本再用)rebuild_indx.sql
- [转载]Elasticsearch索引重建(Rebuild)
- 曲演杂坛--重建索引后,还使用混合分区么?(Are mixed pages removed by an index rebuild?)
- 【搜】重建MSSQL索引
- elasticsearch 索引重建(Rebuild)
- SQL Server 重建索引 Rebuild Index
- SQL Server 重建索引|索引重组|索引的碎片检查 (MSSQL个人笔记之数据库优化之路 六<SQL2005以上>)
- Elasticsearch索引重建(Rebuild)
- 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD
- Elasticsearch索引重建(Rebuild)
- SQL Server 重建索引 Rebuild Index
- 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD
- 重建索引解决mssql表查询超时的问题
- ALTER INDEX Rebuild Reorganize 索引 重建 重组 碎片率