ПЕРЕСТРОЕНИЕ ИНДЕКСА ИЛИ РЕОРГАНИЗАЦИЯ
ПЕРЕСТРОЕНИЕ ИНДЕКСА ИЛИ РЕОРГАНИЗАЦИЯ
Содержание настоящей статьи
- Knowledge Base
- Oracle online: возможности по реорганизации таблиц, индексов и переопределению данных
- Создание простого кластеризованного индекса
Видеокурс по 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. Тем самым выполняется перестроение всех индексов, связанных с таблицей.