Оптимізація запитів

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

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

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

Рік:
2009
Тип роботи:
Звіт
Предмет:
Бази даних
Група:
ПІ

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут КНІТ Кафедра ПЗ ЗВІТ До лабораторної роботи № 3 На тему: “ Оптимізація запитів ” З дисципліни : " Бази даних. Частина 2 " Лектор: Доцент Павич Н.Я. Тема роботи: Оптимізація запитів Мета роботи: Навчитися використовувати оптимізатор запитів. Індивідуальне завдання Створити базу даних із архітектурою таблиць згідно варіанту. Всі новостворені об’єкти бази даних помістити у наперід створену схему бази даних. Внести відповідні дані у таблиці. Виконати індивідуальне завдання згідно варіанту для відповідної навчальної бази даних. Проглянути план виконання запиту. Використовуючи SQL Query Аnalyzer и SQL Profiler здійснити оптимізацію запиту. Якщо запит надто простий, то ускладнити його штучно зайвими операціями. Привести отриманий план запиту. Варіант 6. Знайдіть середню швидкість ПК, випущених виробником A. Варіант 24*. Порахувати залишок грошових коштів на початок дня 15/04/01 на кожному пункті прийому для бази даних зі звітністю не частіше одного разу на день. Висновок: пункт, залишок. Результати виконання завдання 1.Створення бази даних і чотирьох таблиць: Product, PC, Laptop, Printer. Відповідні SQL скрипти: USE [DateBaseKlyovan] GO CREATE TABLE [ComputerFirm].[MyProduct]( [maker] [varchar](10) PRIMARY KEY, [model] [varchar](50) NOT NULL, [type] [varchar](50) NOT NULL ) GO USE [DateBaseKlyovan] GO CREATE TABLE [ComputerFirm].[MyPC]( [code] [int] PRIMARY KEY, [model] [varchar](50) NOT NULL, [speed] [smallint] NOT NULL, [ram] [smallint] NOT NULL, [hd] [real] NOT NULL, [cd] [varchar](10) NOT NULL, [price] [money] NULL ) GO USE [DateBaseKlyovan] GO CREATE TABLE [ComputerFirm].[MyLaptop]( [code] [int] PRIMARY KEY, [model] [varchar](50) NOT NULL, [speed] [smallint] NOT NULL, [ram] [smallint] NOT NULL, [hd] [real] NOT NULL, [price] [money] NULL, [screen] [tinyint] NOT NULL ) GO USE [DateBaseKlyovan] GO CREATE TABLE [ComputerFirm].[MyPrinter]( [code] [int] PRIMARY KEY, [model] [varchar](50) NOT NULL, [color] [char](1) NOT NULL, [type] [varchar](10) NOT NULL, [price] [money] NULL ) GO Вигляд таблиць та встановлених зв’язків на діаграмі:  2. Створення схеми бази даних: USE [DateBaseKlyovan] GO CREATE SCHEMA [ComputerFirm] AUTHORIZATION [UserKlyovan] GO Задання створеної схеми схемою за замовчуванням для даного користувача. Після цього всі новостворені таблиці поміщатимуться в цю схему: USE [DateBaseKlyovan] GO ALTER USER [UserKlyovan] WITH DEFAULT_SCHEMA=[ComputerFirm] GO 3. Внесення відповідних даних у таблиці: INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('Samsung','1428','PC'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('Samsung','1429','PC'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('Samsung','1621','Laptop'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('HP','3734','Laptop'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('HP','3992','Printer'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('SomeFirm','7144','PC'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('SomeFirm','7321','Laptop'); INSERT INTO [DataBaseKlyovan].[ComputerFirm].[MyProduct] VALUES ('SomeFirm','7979','Printer'); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyPC] VALUES(40,'1428',1200,512,160,'52x',250); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyPC] VALUES (41,'1428',1200,1024,500,'52x',350); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyPC] VALUES (84,'7144',1500,2048,320,'52x',500); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyLaptop] VALUES(44,'1621',1200,512,160,400,15); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyLaptop] VALUES (72,'3734',800,256,80,250,14); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyLaptop] VALUES (87,'7321',1500,1024,240,NULL,15); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyPrinter] VALUES(75,'3992','y','Laser',200); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyPrinter] VALUES(88,'7979','n','Jet',140); INSERT INTO [DateBaseKlyovan].[ComputerFirm].[MyPrinter] VALUES(89,'7979','n','Matrix',120) Виконання індивідуально завдання: Запит: use RCompany go SET STATISTICS IO ON; select i.point as point, i.inc - o.[out] as result from ComSchema.Income_o i join ComSchema.Outcome_o o on i.[date] = o.[date] and i.point = o.point and i.[date] = '2001-04-15'; SET STATISTICS IO OFF; План виконання запиту:  Повідомлення про ввід/вивід Table 'Outcome_o'. Scan count 0, logical reads 10, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Income_o'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Для оптимізації запиту використаємо підказку FAST n. Оптимізований запит: select i.point as point, i.inc - o.[out] as result from ComSchema.Income_o i join ComSchema.Outcome_o o on i.[date] = o.[date] and i.point = o.point and i.[date] = '2001-04-15' option (fast 5); Повідомлення про ввід/вивід Table 'Income_o'. Scan count 1, logical reads 11, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Outcome_o'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  Висновок На даній лабораторній роботі я навчився використовувати оптимізацію запитів, користуватися засобами SQL Query Аnalyzer і SQL Profiler, навчився переглядати плани виконання запитів та впливати на їх зміну.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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