Программирование >>  Реализация баз данных 

1 ... 108 109 110 [ 111 ] 112 113 114 ... 162


Примечание Методики принятия решения об использовании индекса, выбора индекса с подходящими свойствами и создания таких индексов описаны в занятии 2.

Просмотр сведений об индексе

Для просмотра индексов и тойсти используются системные хранимые процедуры, Object Browser в Query Analyzer и Enterprise Manager. На основе сведений об индексах, построенных для таблицы или представления, можно оптимизировать запросы. Результаты анализа индексов позволяют создавать эффективные операторы SELECT, а также новые индексы для поддержки запросов. Для просмотра индексов, созданных для или представления, предназначены системные хранимые процедуры sphelp и sp help-index. Команда Transact-SQL показывает все индексы, созданные для таблицы EmployeeOI;

sp helplndex employeeOI

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

Средствами Object Browser из Queiy Analyzer можно получить аналогичную информацию. Для этого в Object Browser следует раскрыть узе тгвуюшей таблицы, а затем узел Indexes. Щелкните правой кнопкой индекс и выберите команду Edit - появится диалоговое окно Edit Existing Index. Вид этого окна со свойствами индекса показан на рис, 11 -2.

Просматривать свойства индекса и вызывать диалоговое окно Edit Existing Index допу-симо также из вкладки Execution plan. Для этого щелкните правой кнопкой индекс на вкладке Execution plan и выберите команду Manage Indexes. Откроется диалоговое окно Manage Indexes. Оно также доступно через Enterprise Manager. Сначала найдите в консоли узел Tables для данной БД. На панели Details щелкните правой кнопкой таблицу, выберите All Tasks, затем - Manage Indexes. Диалоговое окно Manage Indexes позволяет модифицировать и удалять существующие индексы и создавать новые. В занятии 2 рассказано, как администрировать индексы (например, модифицировать, создавать или удалять их).

Обратите внимание, что порядок сортировки не задан. Из предыдущего раздела вы что оптимизатор запросов формирует результат этого оператора с помощью ставного индекса. Этот составной индекс - некластерный, а - первым столбцом является те. Порядок сортировки не задан при создании индекса, поэтому результат упорядочивается по возрастанию, начиная со сголбца Iname. Конструкция ORDER BY не используется для экономии вычислительных ресурсов. Но получаемый результат, теп не менее, упорядочен (сначала по значениям Iname). Порядок сортировки определяет индекс, примененный для возврата результата (если не определена конструкция ORDER BY или не задан явно индекс, используемый оператором SELECT). Если оптимизатор запросов возвращает результат с помощью кластерного индекса, то именно кластерный индекс определяет порядок сортировки результата, который совпадает с порядком страниц таблицы. оператор Transact-SQL использует для возврата результата, упорядоченного по возрастанию, кластерный индекс столбца EmpID:

SELECT e:iip id, Iname лмс-: FROM e.-npioyeeOl



Глава 11

Editing Index

Edit the indeieated от* bjieeOI in database (pubsl

INco

Cdksrm

iSwt QideESC) DaiaTypa

lie Идае

я hiiedate

□ emp id

П iobjd

G Гпжпв

varchai

datetime

empid

1 f *

I ridux options

Г .

F Ufikjue values

FEIfaqtor:;

f7 Ftegigup.

PRIMARY

£dil SQL

Сагк:е1

Рис. 11-2. Свойства некластерног а INco, созданного для таблиц е01 :>Т Puns

Для просмотра всех индексов, созданных для БД. следует выполнить запрос к системной таблица dexes. Например, чтобы извлечь избранные сведения об индексах БД Pubs, исполните следующий код Tnmsaci-SQL;

USE PUBS -

GO .

SELECT name keycrt froTi sysindexes

WHERE name NOT LIKE %sys% .

ORDER BY keycnL

Полнотекстовое индексирование

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

встроенной в SQL Server. индекс позволяет выполнять полнотекстовые

запросы для поиска в БД строки данных. Этот индекс содержится в

каталоге. Полнотекстовый индекс и каталог обслуживается механизмом Microsoft Search, а не SQL Server. Более подробно об этой функции рассказано в разделе Full-Text Query Architecture* SQL Server Books Online.



Упражнение. Использование индекса и просмотр его свойств

В этом упражнении вы просмотрите свойства индекса с помощью системной хранимой процедуры sp helpindex и Query Analyzer, а iaioi создадите операторы SELECT, использующие различные индексы. После исполнения каждого из этих операторов вы определите по плану исполнения, какой индекс использовал оптимизатор запросов. В последнем задании вы создадите составной индекс и исполните запрос, использующий этот индекс.

► Просмотр свойств индекса в БД Northwind

1. Откройте Query Analyzer и подключитесь к локальному серверу.

2. На панели Editor в окне Query введите и исполните следующий код:

USE Northwind

sp helplnde>: customers

На вкладке Grids панели Results появляются пять индексов.

3. Какой индекс отражает порядок сортировки таблицы Customers?

4. Есть ли в таблице Customers составной индекс?

► Исполнение запросов и просмотр плана исполнения

1. В Query Analyzer щелкните Query, а затем Show Execution Plan.

2. На панели Editor в окне Query введите и исполните следующий код:

USE Northwind

SELECT - FROM customers

На вкладке Grids панели Results появляется результирующий набор. Обратите внимание, что он упорядочен по значению CustomerlD.

3. Щелкните вкладку Execution Plan.

План исполнения выводится на вкладке Execution Plan панели Results. Обратите внимание, что оптимизатор запросов использовал кластерный индекс PKCustomers. На вкладке Execution Plan имя индекса PK Customers обрезано до РК Си....

4. На панели Editor в окне Query введите и исполните следующий код:

SELECT city OTisrd from customers

На вкладке Grids панели Results появляется результирующий набор. Обратите внимание, что он отсортирован по значению City.

5. Щелкните вкладку Execution Plan.

План исполнения показывает, что оптимизатор запросов использовал некластерный индекс City.

6. Почему оптимизатор запросов в этом случае выбрал индекс City, а не PKCustomers?

7. На панели Editor в окне Query введите и исполните следующий код:

SELECT contactnane, city ntry, phone FROM customers ,

На вкладке Grids панели Results появляется результирующий набор. Обратите внимание, что он упорядочен по значению столбца у Name. Этот порядок сортиров-



1 ... 108 109 110 [ 111 ] 112 113 114 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика