|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лабораторная работа 6.1 Определение влияния индексов на производительность запросаВлияние индексов на скорость выполнения запросов, количество логических чтений, ускорение выполнения запросов при добавлении индексов Задание:1) Просмотрите информацию об индексах для таблицы Order Details базы данных Northwind вашего локального сервера SQL Server средствами Transact-SQL; 2) Создайте в базе данных Northwind на вашем локальном SQL Server таблицу OD_Test, скопировав в нее структуру и данные таблицы Order Details; 3) Просмотрите информацию об индексах для созданной вами таблице; 4) Выполните к созданной вами таблице запрос SELECT * FROM OD_Test WHERE OrderID = '10369' Сколько логических операций чтения пришлось выполнить серверу? 5) Средствами CREATE INDEX WIZARD создайте кластерный индекс для столбца OrderId таблицы OD_Test. 6) Выполните запрос SELECT * FROM OD_Test WHERE OrderID = '10369' еще раз. Сколько на этот раз потребовалось выполнить логических операций чтения? 7) Удалите созданный вами индекс средствами Enterprise Manager. Решение:К пункту 1 - просмотр информации об индексах: Запустите Query Analyzer и подключитесь к вашему локальному серверу SQL Server. Перейдите к базе данных Northwind и выполните запрос SP_HELPINDEX [Order details] Должна вернуться информация о пяти индексах для этой таблицы. К пункту 2 - копирование структуры и данных между таблицами: В Query Analyzer выполните команду SELECT * INTO OD_Test FROM [Order details] К пункту 3 - просмотр информации об индексах для созданной таблицы: Выполните команду SP_HELPINDEX [OD_Test] Индексов для этой таблицы быть не должно. К пункту 4: определение количества логических чтений для запроса: 1) В Query Analyzer выполните команду set statistics io on 2) Затем выполните запрос SELECT * FROM OD_Test WHERE OrderID = '10369' 3) Перейдите на вкладку Messages. Должно быть выполнено примерно 10 операций логического чтения. К пункту 5: создание кластерного индекса средствами Create Index Wizard: 1) Запустите Enterprise Manager и подключитесь к вашему локальному серверу SQL Server. 2) В меню Tools выберите Wizards, в списке мастеров раскройте контейнер Database и запустите Create Index Wizard. 3) на первом экране Create Index Wizard нажмите Next. 4) На экране Select Database and Table выберите базу данных Northwind и таблицу OD_Test. 5) На экране Current Index Information просмотрите информацию о служебном индексе _WA_... (его можно игнорировать) и нажмите Next. 6) На экране Select Columns установите флажок напротив столбца OrderID в Include In Index. В столбце Sort Order флажок не ставьте. 7) На вкладке Specify Index Options установите флажок Make this a clustered index, для остальных параметров оставьте значения по умолчанию. 8) На последнем экране мастера оставьте предлагаемое по умолчанию название OD_Test_Index_1 и нажмите Finish, чтобы создать индекс. К пункту 6: повторное определение количества операций чтения: см. п. 4. Логических чтений должно быть 2. К пункту 7: удаление индекса средствами Enterprise Manager: 1) В Enterprise Manager разверните контейнер Имя_вашего_сервера -> Databases -> Northwind -> Tables, щелкните правой кнопкой мыши по таблице OD_Test и в контекстном меню выберите All Tasks -> Manage Indexes. 2) В окне Manage Indexes выберите созданный вами индекс и нажмите Delete, и затем - Yes в окне подтверждения.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||