ВУЗ:
Составители:
Рубрика:
CREATE [UNIQVE] [CLUSTERED\NONCLUSTERED] INDEX
Имя индекса
ON {Имя индекса\Имя представления}
(column[ASC\DESC] [,…n])
[WITH [PAD_INDEX]
[[,] FILLFACTOR = Фактор заполнения]
[[,] IGNOR_DUP_KEY]
[[,] DROP_EXISTING]
[[,] STATISTICS_NORECOMPUTE]
[[,] SORT_IN_TEMP_DB]
]
[ON Имя группы файлов]
Если автоматическое создание кластерного индекса не предполагается, то перед
созданием не кластерного индекса надо создать кластерный, так как не кластерный индекс всегда
ссылается на кластерный. Можно создать 249 не кластерных индексов с использованием до 16
столбцов в каждом индекс, при этом общая длина индекса не должна превышать 900 байтов.
Столбцы с типами данных text, ntext или image не допускаются. Порядок столбцов при
определении ключа очень важен. Желательно их указывать в порядке возрастания длины данных.
Параметры ASC и DESC определяют метод сортировки ключевых элементов –
соответственно по возрастанию или по убыванию.
Параметр PAD_INDEX обеспечивает резервирование на каждой странице индекса места
для вставки новых записей и используется вместе с параметром FILLFACTOR.
Параметр IGNORE_DUP_KEY не приводит к отказу транзакции при добавлении
дублирующих строк, при этом сами дублирующие строки игнорируются, и сервером выдается
сообщение об ошибке.
Остальные параметры команды используются редко.
Созданный тем или иным способом индекс, можно переименовать с помощью системной
хранимой процедуры sp_rename, можно его удалить командой DROP INDEX или перестроить для
упорядочивания свободного места на индексных страницах, используя команды DROP INDEX и
CREATE INDEX или команду DBCC DBREINDEX. Для получения информации об индексах
используется системная хранимая процедура
sp_helpindex [@objname] ‘name’,
где name – имя рассматриваемой таблицы текущей базы данных.
Для просмотра индивидуальных свойств конкретного индекса следует применять
команду
INDEXPROPERTY (table_ID, index, property),
в которой table_ID = OBJECT_ID (имя таблицы) – идентификационный номер таблицы,
index – имя индекса, а property – рассматриваемое свойство: Index Depth (глубина индекса), Is
Clustered (кластерный), Is Unique (уникальный) и др.
Для сбора и анализа статических данных при использовании индексов используются
следующие команды и процедуры: CREATE STATISTICS, UPDATE STATISTICS, sp_autostats,
sp_statistics и др.
Задание 1. Создать уникальный кластерный индекс для столбца au_id таблицы authors
базы данных pubs с расположением его на первичной группе файлов, выполнив команду:
CREATE UNIQVE CLUSTERED INDEX VEKCL_auidind
ON [dbo].[authors](au_id)
WITH DROP_EXISTING -- с предварительным уничтожением
-- индекса с таким же именем
CREATE [UNIQVE] [CLUSTERED\NONCLUSTERED] INDEX
Имя индекса
ON {Имя индекса\Имя представления}
(column[ASC\DESC] [,…n])
[WITH [PAD_INDEX]
[[,] FILLFACTOR = Фактор заполнения]
[[,] IGNOR_DUP_KEY]
[[,] DROP_EXISTING]
[[,] STATISTICS_NORECOMPUTE]
[[,] SORT_IN_TEMP_DB]
]
[ON Имя группы файлов]
Если автоматическое создание кластерного индекса не предполагается, то перед
созданием не кластерного индекса надо создать кластерный, так как не кластерный индекс всегда
ссылается на кластерный. Можно создать 249 не кластерных индексов с использованием до 16
столбцов в каждом индекс, при этом общая длина индекса не должна превышать 900 байтов.
Столбцы с типами данных text, ntext или image не допускаются. Порядок столбцов при
определении ключа очень важен. Желательно их указывать в порядке возрастания длины данных.
Параметры ASC и DESC определяют метод сортировки ключевых элементов –
соответственно по возрастанию или по убыванию.
Параметр PAD_INDEX обеспечивает резервирование на каждой странице индекса места
для вставки новых записей и используется вместе с параметром FILLFACTOR.
Параметр IGNORE_DUP_KEY не приводит к отказу транзакции при добавлении
дублирующих строк, при этом сами дублирующие строки игнорируются, и сервером выдается
сообщение об ошибке.
Остальные параметры команды используются редко.
Созданный тем или иным способом индекс, можно переименовать с помощью системной
хранимой процедуры sp_rename, можно его удалить командой DROP INDEX или перестроить для
упорядочивания свободного места на индексных страницах, используя команды DROP INDEX и
CREATE INDEX или команду DBCC DBREINDEX. Для получения информации об индексах
используется системная хранимая процедура
sp_helpindex [@objname] ‘name’,
где name – имя рассматриваемой таблицы текущей базы данных.
Для просмотра индивидуальных свойств конкретного индекса следует применять
команду
INDEXPROPERTY (table_ID, index, property),
в которой table_ID = OBJECT_ID (имя таблицы) – идентификационный номер таблицы,
index – имя индекса, а property – рассматриваемое свойство: Index Depth (глубина индекса), Is
Clustered (кластерный), Is Unique (уникальный) и др.
Для сбора и анализа статических данных при использовании индексов используются
следующие команды и процедуры: CREATE STATISTICS, UPDATE STATISTICS, sp_autostats,
sp_statistics и др.
Задание 1. Создать уникальный кластерный индекс для столбца au_id таблицы authors
базы данных pubs с расположением его на первичной группе файлов, выполнив команду:
CREATE UNIQVE CLUSTERED INDEX VEKCL_auidind
ON [dbo].[authors](au_id)
WITH DROP_EXISTING -- с предварительным уничтожением
-- индекса с таким же именем
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
