ПЕРЕСТРОЕНИЕ ИНДЕКСА ИЛИ РЕОРГАНИЗАЦИЯ

ПЕРЕСТРОЕНИЕ ИНДЕКСА ИЛИ РЕОРГАНИЗАЦИЯ

Содержание настоящей статьи

перестроение индекса или реорганизация

Видеокурс по SQL Essential. Урок 7. Индексирование


Knowledge Base

Параметры указывают операции с индексом, имеющим средний уровень фрагментации. Данный параметр имеет схожие переменные с FragmentationLow

Применить процент свободного места, который коэффициент заполнения указывает на страницы промежуточного уровня индекса.

Обновлять статистику только в том случае, если какие-либо строки были изменены с момента последнего обновления статистики

IndexOptimize проверяет is_ms_shipped в sys.objects, чтобы определить, был ли объект создан внутренним компонентом SQL Server.

Параметр WaitAtLowPriorityMaxDuration использует параметр SQL Server WAIT_AT_LOW_PRIORITY и MAX_DURATION команды ALTER INDEX.

Действие, которое будет выполняться после операции ожидания блокировки с низким приоритетом на перестроение индекса online

Устанавливет время в секундах, чтобы команда ожидала освобождения блокировки. По умолчанию время не ограничено.

Выполнить команды. По умолчанию команды выполняются нормально. Если этот параметр установлен в N, то команды только выводятся на экран.

EXECUTE dbo.IndexOptimize
@Databases = ‘USER_DATABASES’,
@FragmentationLow = NULL,
@FragmentationMedium = NULL,
@FragmentationHigh = NULL,
@UpdateStatistics = ‘ALL’

Oracle online: возможности по реорганизации таблиц, индексов и переопределению данных

В онлайновом режиме можно перестраивать множество видов индексов, включая индексы на основе функций и индексы с реверсированным ключом.

Онлайновое переопределение таблицы предусматривает выполнение следующей простой последовательности шагов.

На заметку! Для выполнения онлайнового переопределения таблица в первичном ключе не нуждается.

Если посмотреть на структуру таблицы employees (скажем, с помощью команды DESCRIBE), легко заметить, что она уже не содержит столбца salary.

В дополнение к возможностям выделения ресурсов Database Resource Manager включает следующие средства, помогающие в онлайновом управлении транзакциями.

В следующих разделах будет описано, как выполнить каждую из этих задач посредством Database Resource Manager.

Разумеется, для перемещения таблицы в новое табличное пространство можно так-же применить метод онлайнового переопределения таблицы.

Когда вы приостанавливаете базу данных, все транзакции приостанавливаются до тех пор, пока база не будет возвращена в нормальный режим работы.

Создание простого кластеризованного индекса

В этом примере создается некластеризованный составной индекс по столбцам SalesQuota и SalesYTD таблицы Sales.SalesPerson.

Следующий запрос проверяет ограничение уникальности данных при попытке вставить строку с тем же значением, что и в уже существующей строке.

Инструкция ALTER INDEX устраняет фрагментацию существующих индексов таблицы либо изменяет их посредством отключения или настройки индексных параметров.

При перестроении XML-индекса или пространственного индекса параметры ONLINE = ON и IGNORE_DUP_KEY = ON недопустимы.

Возможно минимальное протоколирование операции перестроения, если модель восстановления базы данных настроена на массовый или простой режим.

SORT_IN_TEMPDB, MAXDOP и DATA_COMPRESSION – параметры, которые могут быть указаны при перестроении одиночной секции (PARTITION = n).

Указывает параметры индекса без перестройки или реорганизации индекса. SET нельзя указать для отключенного индекса.

Процент свободного места, определяемый аргументом fillfactor, применяется к страницам индекса промежуточного уровня.

Для обратной совместимости синтаксиса аргумент WITH PAD_INDEX эквивалентен аргументу WITH PAD_INDEX = ON.

Указывает, сохранять ли временные результаты сортировки в базе данных tempdb. Значение по умолчанию – OFF.

Если в уникальный индекс вставляются повторяющиеся значения ключа, выводится сообщение об ошибке. Будет выполнен откат всей операции INSERT.

Указывает, что названный существующий кластеризованный или некластеризованный индекс удаляется и перестраивается. Значение по умолчанию – OFF.

Блокировки строк допустимы при доступе к индексу. Необходимость в блокировке строк определяет компонент Database Engine.

ON –блокировки страниц возможны при доступе к индексу. Необходимость в блокировке страниц определяет компонент Database Engine.

Задает режим сжатия данных для указанного индекса, номера секции или диапазона секций. Ниже приведены доступные параметры.

В следующем примере устанавливаются несколько параметров для индекса AK_SalesOrderHeader_SalesOrderNumber.

Значительно фрагментированные индексы могут серьезно снижать производительность запросов и служить причиной замедления откликов приложения.

Выяснив степень фрагментации, используя нижеследующую можно выбрать наиболее подходящий метод устранения фрагментации.

index_id name avg_fragmentation_in_percent——————————————————————————————1 IX_Id_Unique_Clustered 15.0769230769230773 IX_Unique_Code 99.666666666666657 (2 row(s) affected)

Реорганизация индексов производится при помощи инструкции ALTER INDEX с предложением REORGANIZE. Это предложение эквивалентно DBCC INDEXDEFRAG.

Реорганизация индексов производится при помощи инструкции ALTER INDEX с предложением REBUILD. Это предложение эквивалентно DBCC DBREINDEX.

В следующем примере указывается ключевое слово ALL. Тем самым выполняется перестроение всех индексов, связанных с таблицей.