четверг, 17 июля 2014 г.

Индексирование баз SQL

Когда БД содержит в себе много данных встает вопрос о том, как эти данные получить быстрее.
На помощь приходят команды 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




Комментариев нет:

Отправить комментарий