Оптимізація запитів в SQL Server 2008

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт
Предмет:
Інформаційні технології
Група:
ПІ

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет «Львівська політехніка» Інститут комп’ютерних наук та інформаційних технологій Кафедра ПЗ ЗВІТ до лабораторної роботи №3 з дисципліни «Бази даних (частина ІІ)» на тему: «Оптимізація запитів в SQL Server 2008» Мета: Навчитись підвищувати продуктивність запитів в SQL Server 2008, використовуючи оптимізатор запитів. Завдання 1.Створити базу даних з наступною архітектурою таблиць: - Classes (class, type, country, numGuns, bore, displacement) - Ships (name, class, launched) - Battles (name, date) - Outcomes (ship, battle, result) 2.Всі новостворені об’єкти бази даних помістити у наперед створену схему бази даних. 3.Внести відповідні дані у таблиці. 4.Знайти назви кораблів з гарматами калібру 16 дюймів (врахувати кораблі з таблиці Outcomes). 5.Проглянути план виконання запиту. 6.Використовуючи SQL Query Analyzer і SQL Profiler, здійснити оптимізацію запиту. 7.Привести отриманий план запиту. Хід роботи 1.Створення бази даних і чотирьох таблиць: Classes, Ships, Battles, Outcomes; встановлення зв’язків між ними:  2.Поміщення всіх таблиць у наперед створену схему бази даних Ships, яка задана схемою за замовчуванням для користувача бази даних:  3.Внесення у таблиці відповідних даних: Таблиця Classes:  Таблиця Ships:  Таблиця Battles:  Таблиця Outcomes:  4.Запит, який повертає назви кораблів з гарматами калібру 16 дюймів з урахуванням кораблів з таблиці Outcomes: SELECT name FROM Ships.Ships WHERE class IN (SELECT class FROM Ships.Classes WHERE bore = 16) UNION SELECT ship FROM Ships.Outcomes WHERE ship IN (SELECT class FROM Ships.Classes WHERE bore = 16) Назви кораблів з гарматами калібру 16 дюймів:  5.План виконання запиту:  Додаткові дані про останню вартісну операцію (Union):  6.Створення унікального некластерного індексу, що покриває звернення до таблиці Ships: CREATE UNIQUE NONCLUSTERED INDEX ShipIndex ON Ships.Ships(name) INCLUDE (class) Створення на базі таблиці Classes віртуальної таблиці з назвами класів з гарматами калібру 16 дюймів та індексу до неї: CREATE VIEW Ships.ClassBore16 WITH SCHEMABINDING AS SELECT class AS ShipClass FROM Ships.Classes WHERE bore = 16 GO CREATE UNIQUE CLUSTERED INDEX ClassViewIndex ON Ships.ClassBore16(ShipClass) GO Оптимізований запит з використанням створених індексів, вибором з таблиці Outcomes тільки різних значень і заміною найбільш вартісної операції Union операцією Concatenation: SELECT name AS ShipName FROM Ships.Ships WITH (INDEX = ShipIndex) WHERE class IN (SELECT ShipClass FROM Ships.ClassBore16 WITH (NOEXPAND)) UNION ALL SELECT DISTINCT ship AS ShipName FROM Ships.Outcomes WHERE ship IN (SELECT ShipClass FROM Ships.ClassBore16 WITH (NOEXPAND)) 7.План виконання запиту:  Додаткові дані про останню вартісну операцію (Concatenation):  Порівняння виконання початкового і оптимізованого запитів за допомогою трасування в SQL Profiler, а також порівняння 100-кратного виконання цих запитів:  Висновок: На цій лабораторній роботі я навчився підвищувати продуктивність запитів в SQL Server 2008, використовуючи оптимізатор запитів; створив власну базу даних, вніс у неї відповідні дані та здійснив оптимізацію запиту до неї за допомогою SQL Query Analyzer і SQL Profiler.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!