Когда БД содержит в себе много данных встает вопрос о том, как эти данные получить быстрее.
На помощь приходят команды DBCC DBREINDEX (или ALTER INDEX)
Ниже скрипт, который поможет переиндексировать таблицы БД
--укажите нужную БД
USE [YOUR_DB_NAME]
SET NOCOUNT ON
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
--DBCC DBREINDEX(@TableName)
ALTER INDEX ALL ON @TableName REBUILD PARTITION = ALL WITH ( FILLFACTOR = 90, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ONLINE = ON)
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
На помощь приходят команды DBCC DBREINDEX (или ALTER INDEX)
Ниже скрипт, который поможет переиндексировать таблицы БД
--укажите нужную БД
USE [YOUR_DB_NAME]
SET NOCOUNT ON
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
--DBCC DBREINDEX(@TableName)
ALTER INDEX ALL ON @TableName REBUILD PARTITION = ALL WITH ( FILLFACTOR = 90, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ONLINE = ON)
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
Комментариев нет:
Отправить комментарий