MSSQL 인덱스 리빌드(Index Rebuild)
DB Skill/MSSQL 2021. 6. 4. 07:01
방법 1
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', '', 90)"
--update stats
방법 2
-- Index Rebuild
DECLARE @i int, @sql varchar(1000)
DECLARE @tablename varchar(1000),@ownerName varchar(1000)
SET @i = 1
DECLARE DB_Cursor CURSOR FOR
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_SCHEMA, TABLE_NAME
OPEN DB_Cursor
FETCH NEXT FROM DB_Cursor
INTO @ownerName, @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql='ALTER INDEX ALL ON ' + @ownerName + '.' + @tablename + ' REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90) '
EXEC (@sql)
PRINT CONVERT(VARCHAR, @i) + '__' + @ownerName + '.' + @tablename + '............ OK'
SET @i = @i + 1
FETCH NEXT FROM DB_Cursor
INTO @ownerName, @tablename
END
CLOSE DB_Cursor
DEALLOCATE DB_Cursor
PRINT N'1. Index Rebuild...';
--update stats
'DB Skill > MSSQL' 카테고리의 다른 글
MSSQL backup history delete (0) | 2021.06.06 |
---|---|
MSSQL 데이터베이스 파일 (MDF, NDF)에 대해 초기화(Zeroing)하지 않고 즉시 생성 (0) | 2021.06.04 |
MSSQL 데이터베이스명 변경 (0) | 2021.06.04 |
MSSQL Windows Cluster + AlwaysOn 구성 시 주의점 (0) | 2021.06.04 |
MSSQL hostname 변경 (0) | 2021.06.03 |