|
Программирование >> Реализация баз данных
9 Index - lABI Intten names P гггч---: . Г Padindra P Uisquevalue* p , . P Isnote AjpScen vaiues Г Fl factor: V DoriDtteccimpu(ei*alisJicsi )ite mnieniied) P Fife да > JFflliAfri Рис П-3. Вид диалогового окна Create New Index дл лицы Products БД Northwind набор упорядочен по возрастанию значений затем по убы- ванию значений UnitPrice. Индекс сортирует значения ProductName по возрастанию, но это не отражается в результирующем поскольку порядок значений SupplierlD и UnitPrice заменяет порядок сортировки столбца UnitPrice. Иллюстрациями служить несколько записей из результирующего набора, показанных в следующей таблице.
Если вы нетвердо знаете, как создавать индекс, воспользуйтесь мастером Create Index rprtse Manager. Мастер Create Index также доступен через пункт Wizards меню Tools. Чтобы вызвать мастер, в диалоговом окне Select раскройте узел Database, выберите мастер Create Index и щелкните ОК. Этот мастер позволяет просматривать ствующис индексы таблицы или представления, а также создавать новые индексы, выбирая столбец (или столбцы) индекса и задавая необходимые свойства. 334 Ичде< :ы Глава 11 Использование операторов Transiact-SQL В создании индекса участвуют CREATE CREATE LE и ALTER TABLE. Их средствами можно создать индекс в Query Analyzer, кроме того для этого используют утилиту строки типа При применении CREATE следует указать имя индекса, таблицу или пред- i:iabjit:inie, а также столбец (столбцы I, для которых создается индекс. Также можно (но не задать уникальность индекса, его тип (кластерный или некластерный), порядок сортировки каждого столбца, свойства индекса, расположение группы файлов для хранения индекса. По умолчанию характеристики: создать некластерный индекс; упорядочить все столбце! индекса текущей БД по возрастанию; использовать глобальные настржи SQL Server для разреженности и коэффициента заполнения; размещать все результаты сортировки во время создания индекса в группе файлов по умолчанию; обновить статистику индекса; откатить пакет из несколькимений. если хоть одна из добавленных строк нарушает уникальность индекса; не допускать перезаписи таующе го индекса. Основные конструкции оператора CREATE INDEX имеют следующий вид: CREATE [UNIQUE] [CLUSTERED I NONCLUSTEREDI INDEX имя индекса * ON [имятаблицы имя представления]{имя столбца[ ..п]) [WITH \свойство индекса [,... ] ] [ON группа файяов] Назначение этих конструкций уже должно быть вам известно, как и все необязательные конструкции и значения параметров, заданные для них по умолчанию. К необязательным относятся конструкции UNIQUE, CLUSTERED или NONCLUSTERED. Также не обязательно задавать свойства индекса с помощью конструкции WITH и группу файлов, в которой создается индекс (используя вторую конструкцию ON). В показанном далее операторе CREATE i ,\ ULX для всех необязательных конструкций применяются параметры по умолчанию: CREATE INDE exui ON LauieU l(i;uu[rr01) В таблице неуникальный и некластерный индекс IndexOI, ключом которого является столбец Все свойства индекса определяются параметрами. заданными в БД по умолчанию. В следующем операторе CREATE. используются необязательные конструкции: CREATE UNIQUE CLUSTERED INDEX In.JexOI ON 1аЫе01(со1итл01, coiunin03 DE3C) WITH FILLFACTOR = 60, rGNORE DUP KEY, DROP EXISTING, SORT IN TEMPDa Индекс IndexOI заменяет существующий одноименный индекс, созданный в таблице TableOL соответствующее указание дает ключевое слово DROPEXISTING. Ключ индекса состоит из столбцов ColumnOl и Column03, таким образом, индекс IndexOI является составным. Ключевое слово DESC 5;<дает для столбца Column03 сортировку по убыванию (а не по возрастанию, как определено по умолчанию). Ключевое слов CTOR настраивает индекс так, что его страницы, расположенные на листовом уровне, заполнены а 40% места оставлено свободным для дополнительных элементов ключа индекса. Конструкции CLUSTERED и UNIQUE определяют индекс как кластерный и уникальный, таблица физически упорядочена индексом, повторяющиеся значения ключа не допускаются. Ключевое слово IGNORE DUP KEY позволяет успешно исполнить из нескольких операторов INSERT, игнорируя любые операторы, уникальность индекса. слово заставляет индекс немедленно выполнять все операции сортировки в БД mpDB. Это ключевое слово, как правило, используется для ускорения создания или перестройки больших индексов, а также для снижения их фрагментации. Поскольку вторая конструкция ON не задана, индекс exOl создается в группе файлов, заданной по умолчанию для этой БД. При определении ограничения primary key или unique индекс создается автоматически. Эти ограничения определяются во время создания или модификации определения таблицы. Операторы CREATE TABLE и ALTER TABLE дают возможность задать свойства индекса, таким образом, можно настраивать индексы, определяемые этими чениями. Основные конструкции оператора CREATE TABLE, связанные с созданием индексов, таковы: CREATE TABLE 1ШЛ та6лит {имя столбца типданных CONSTRAINT 1ШЯ огр11ничения :[PRIMARYKEY UNIQUE] [[CLUSTERED NONCLUSTERED] [W1T11 FILLFACTOR = значение коэффициента зап0лнения] [ON группафайлов]) Для ограничения primary key всегда установлен параметр NOT NULL. Можно задать параметр и явно, но это лишнее, так как он неявно подразумевается самим определением primary key. В следующем операторе CREATE TABLE используются параметры индекса, заданные по умолчанию при создании таблицы с ограничением primary key: CREATE TABLE tabled ШП01 int CONSTRAINT [Jk coluirin01 PRIMARY KEY) Создается таблица TableOl с единственным столбцов mnOl. Конструкция PRl-MA-RY KEY определяет для столбца ограничение первичного ключа Ограничение уникально и по умолчанию является кластерным индексом. Показанный ниже оператор CREATE TABLE использует ряд необязательных конструкций: CBEAiE TABLE tahleOI (coluninUl int CONSTRAINT pk column01 PRIMARY KEY IfJlTH FILLFACTOR =50 ON SECONDARY) Синтаксис оператора ALTER TABLE для создания или модификации ограничений primary key или unique аналогичен CREATE TABLE. В операторе ALTER TABLE необходимо указать, что вы делаете с ограничением: изменяете, добавляете или удаляете. Например, следующий оператор ALTER TABLE добавляет к таблице TabieOlстолбец с ограничением unique:
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |