|
Программирование >> Реализация баз данных
ки на самом деле соответствует столбца значения которого вклю- чают по крайней мере первые три символа значений столбца CompanyName. 8. Щелкните вкладку Execution Р1ат План исполнения показывает, что оптимизатор запросов использовал индекс Customers. Это произошло зльку ни один индекс кроме него не является покрывающим для запроса. адюцем задании вы создадите покрывающий индекс для этого запроса. Оставьте вкладку Execution Plan активной, она пригодится дл ющего задания. ► Создание составного индекса щего его запроса Цель этого задания - научиться мыовать составные индексы. Поэтому созданию индексов в нем уделяется мал ания. Мы продолжим тему создания индексов в занятии 2. 1. На панели Execution Plan шелкнпте правой кнопкой Customers.РК Си..., а затем Мапа- ge Indexes. В диалоговом окне Manage es выводится список индексов, созданных для табли- цы Customers. 2. Щелкните New. Выводится диалоговое окно Create New Index. 3. В текстовом поле Index name наберите Contact. 4. В столбце ниже текстового поля Index name установите флажки CompanyName, Соп-tactName, City, Country и Phone. 5. Выберите строку City и кнопки UP поднимите ее в начало списка. 6. Щелкните ОК. В списке индексов диалогового Manage Indexes появляется индекс Contact. 7. Щелкните С1оье. 8. На панели Editor в окн егу введите и исполните следующий код: SELECT compan Mntactn,: me country, phone FROM customers ORDER BY city На вкладке Grids панели появляется результирующий набор. Обратите внима- ние, что он упорядочен по City. 9. Щелкните вкладку Execution Plan. План исполнения показывает, что оптимизатор запросов использовал некластерный индекс Contact. Обратите 1и1има,зие, что упорядочение списка не требует вычислений, поскольку составной индекс Со упорядочен вначале по значениям City. 10. На панели Editor в окне Query введите и исполните код: SELECT nfintp.ctntrre, city, country, phone FROM customers ORDER BY counl ry На вкладке Grids панели появляется набор. Обратите внима- ние, что он упорядочен по Country. 1 1. Щелкните вкладку Execution Plan. План исполнения показывает, оптимизатор запросов использовал некластерный индекс Contact. Обратите внимание, что сортировка списка не требует обработки, поскольку составной индекс Contact отсортирован вначале по значениям Country. Занятие 1 Структура индаюор $31 Резюме Индексы повышают производительность запросов, облегчая поиск записей. Индекс содержит ключи индекса, организованные в группы - страницы индекса. Страницы организованы в виде В-дерева, структура которого обеспечивает высокую эффективность поиска даже при больших размерах индекса. Прежде чем создавать вдекс, выясните, каким образом выполняются запросы к таблице. Оптимизатор запросов использует индекс, если он облегчает возврат результирующих записей. Не следует увлекаться созданием в динамичной БД, поскольку система должна обновлять каждый индекс при добавлении записей в таблицу. В таблице или представлении допускается не более одного кластерного индекса. Индекс создается автоматически, когда в таблице определяется ограничение primary key или unique. В таблице или представлении разрешается построить несколько некластерных индексов. Страницы некластерного индекса, расположенные на листовом уровне, содержат RID случае неупорядоченной кучи) или ключи кластерного индекса (в случае упорядоченной Индексы определяются как уникальные и неуникальные. Индекс составляется из одного или нескольких столбцов. Многостолбцовый индекс называется со- Для индекса разрешается задавать значения коэффициента заполнения и женности, чтобы снизить частоту разделение iпин . Если не задан порядок сортиронки, индексы автоматически упорядочиваются по возрастанию. Индекс, который не к таблице или куче, в его основе, называется покрыва- юшим. Запрос ыирующий набор которого формируется покрывающим индексом, называется покрытым. Занятие 2, Создание и администрирование индексов 8 этом занятии вы научитесь перестраивать, переименовывать и удалять ин- дексы с помошью Transact-SQL, Qmry Analyzer и Enterprise Manager. Прежде чем создавать индекс для рабочей БД, необходимо как доступ к Следует создавать индекс только к том случае, он требуется для выполнения большинства пользовательских запросов. Занятие завершается обзором ряда важных оптимизирующих функций для сопровождения индексов, предусмотренных в SQL Server 2000. Изучив материал этого занятия, вы сможете: создавать, перестраивать, переименовывать и удалять индексы; определять, когда следует индекс; описывать ключевые инструменты для оптимизации производительности индексов в SQL Server 2000. Продолжительность занятия - около 45 минут. Создание индексов Сушестнует несколько способов создания индексов в SQL Server. Можно разработать пользовательское приложение, создающее индексы средствами интерфейса Как вы уже знаете из занятия 1, для этого используют и команду Manage Indexes, доступную в Object Browser, или план исполнения в Query Analyzer. Команду Manage Indexes также можно вызвать из контекстного меню таблицы или представления в Enterprise Manager. Кроме Enterprise Manager пред1агает мастер Create Index, который шат за шатом про- ведет вас через процедуру создания Индексы для таблиц и представлений создают- ся средствами оператора Transact-SQL CREATE INDEX. Свойства индекса задают с помощью ограничений primary key или unique во время создания (в операторе CREATE TABLE) или модификации таблицы (ALTER TABLE). Использование графического интерфейса Чтобы вызвать диалоговое окно Manage Indexes в Enterprise Manager, раскройте узел БД в консоли и выберите нужную таблицу или представление. На панели Details щелкните таблицу правой кнопкой, выберите All Tasks, затем - Manage Indexes. В диалоговом окне Manage Indexes шелкните кнопку New, чтобы вызвать диалоговое окно Create New Index (рис. 11-3). В диалоговом окне Create New Index можно указать имя индекса, столбец или столбцы индекса, ето тип (кластерный или зекластерный) и свойства (например, уникальность, разреженность, коэффициент заполнения и группу файлов для хранения индекса). Также разрешается изменить порядок ключа составного индекса. Для этого выберите столбец и используйте кнопки Up и Down. Первый столбец в списке определяет первичный порядок сортировки ключа индекса. Обратите внимание, что для любой части ключа индекса разрешена сортировка по убыванию. При исполнении следующего оператора SELECT оптимизатор запросов выбирает индекс Product (рис. 11-3); SELECT supplierld, unitprice, productnamo FROM products
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |