Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Работа с базами данных для пользователей
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Лабораторная работа 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 в окне подтверждения.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru