У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 4 по дисциплине Базы данных

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 7.3.2025

Лабораторная работа №4 по дисциплине «Базы данных». Оптимизация производительности БД, настройка и использование индексов.

Цель: исследования эффективности индексов.

  1.  Подготовка тестовой таблицы. Создать таблицу Т1 с полями:

FInt1– целочисленное, 4 байта, not null

FInt2– целочисленное, 4 байта, null

FChar1 – строковое, фиксированной длины в 6 символов, not null

FChar2 – строковое, фиксированной длины в 6 символов, null

FStr1 – строковое, переменной длины длины в 500 символов, not null

FStr2 – строковое, переменной длины длины в 500 символов, null

FDate1 – датавремя, not null

FDate2 – датавремя, null

FDec1 – дробное с фиксированной точностью (18 разрядов, 6 после запятой), not null

FDec2 – дробное с фиксированной точностью (18 разрядов, 6 после запятой), null

В отчёт включить скрипт создания таблицы

  1.  Подготовка тестовых данных. Заполнить таблицу 1 млн. записей следующим образом.

Для каждой записи определить @i – номер записи и @i2 – остаток от деления на 10000 от номера записи

Поля заполнить следующими данными:

FInt1– @i

FInt2– @i2

FChar1 – @i

FChar2 – @i2

FStr1 – строка в 200 символов + @i (конкатенацией)

FStr2 – строка в 200 символов + @i2 (конкатенацией)

FDate1 – любая постоянная для всей таблицы дата + кол-во секунд, равное @i

FDate2 – любая постоянная для всей таблицы дата + кол-во секунд, равное @i2

FDec1 – (@i в виде дробного числа) / 10000

FDec2 – (@i2 в виде дробного числа) / 10000

Т.к. выполнение подобного запроса займёт достаточно много времени, то рекомендуется отладить запрос на добавлении 1000 записей, а затем выполнить на 1 млн. Записать для отчёта время выполнения запроса.

После добавления записей выполнить сжатие БД (Task/Shrink/Database). Записать для отчёта размер БД (есть в свойствах БД).

В отчёт включить скрипт запроса, время выполнения на 1 млн. и размер сжатой БД после заполнения таблицы.

  1.  Создание индексов. После каждой операции выполнять сжатие БД. Для отчёта фиксировать время создания ключей и индексов и размер сжатой БД после создания ключа или индекса.

А) Создать первичных ключ (кластерный) по полю FInt1, при этом ключе по очереди создать некластерные индексы по всем полям с цифрой 2 (FInt2, FChar2,  FStr2, FDate2, FDec2), т.е. одновременно не должно быть более одного кластерного ключа и одного некластерного индекса;

Б) Создать первичных ключ (кластерный) по полю FChar1, при этом ключе по очереди создать некластерные индексы по всем полям с цифрой 2;

B) Создать первичных ключ (кластерный) по полю FStr1, при этом ключе по очереди создать некластерные индексы по всем полям с цифрой 2;

Г) Создать первичных ключ (кластерный) по полю FDate1, при этом ключе по очереди создать некластерные индексы по всем полям с цифрой 2;

B) Создать первичных ключ (кластерный) по полю FDec1, при этом ключе по очереди создать некластерные индексы по всем полям с цифрой 2.

В отчёт включить скрипты и следующие заполненные таблицы:

Таблица 1. Продолжительность создания индексов (сек.)

Ключ

Создание

Инд. Int

Инд. Char

Инд. Varchar

Инд. Datetime

Инд. Decimal

Int

Время (с)

Время (с)

Char

Время (с)

Время (с)

Varchar

Datetime

Decimal

Таблица 2. Размер индексов (МБ)

Ключ

Создание

Инд. Int

Инд. Char

Инд. Varchar

Инд. Datetime

Инд. Decimal

Int

Размер объекта

Размер объекта

Char

Размер объекта

Размер объекта

Varchar

Datetime

Decimal

Размер объекта можно вычислить либо как разницу между размерами сжатой БД до и после операции, либо с помощью системной функции sp_spaceused.

  1. Использование индексов. Дальнейшие операции нужно проводить после удаления всех ключей и индексов, оставшихся от предыдущего задания, и ограничения оперативной памяти, доступной для SQL Server, до 256 Мб. Это можно сделать через свойста SQL Server с последующим перезапуском. Ограничение нужно для того, чтобы таблица dbo.T1 полностью не помещалась в оперативную память. Иначе преимущества индексов будут не так ярко выражены. При выполнении запросов включить опцию «включить в результат запроса актуальных план выполнения». После выполнения каждого запроса рекомендуется изучить его план и разобраться какой объект (индекс)  используется для доступа к данным.

А) Написать запрос, который выбирает 1000 записей из таблицы Т1, соответствующие какому либо диапазону из 1000 значений поля FInt1. Записать время выполнения запроса для отчёта.

Б) Написать запрос который выбирает записи, соответствующие каким-либо 10-ти значениям поля FChar2. Записать время выполнения запроса для отчёта.

В) Написать запрос, который выбирает записи, соответствующие какой-либо определенному часу поле FDate1 (диапазону значений от начала до конца этого часа). Записать время выполнения запроса для отчёта.

Г) Создать ключ с кластерным индексом по полю FInt1. Выполнить запросы из п. 4.А., 4.Б. и 4.В. Записать продолжительности выполнения запросов для отчёта.

Д) Создать некластерные индексы по полям FChar2 и FDate1. Выполнить запросы из п. 4.Б. и 4.В. Записать продолжительности выполнения запросов для отчёта.

Е) (Удалить все индексы и ключи) Создать ключ по полю FStr1. Создать некластерные индексы по полям FInt1, FChar2 и FDate1. Выполнить запросы из п. 4.А., 4.Б. и 4.В. Записать продолжительности выполнения запросов для отчёта.

В отчёт включить скрипты всех запросов и следующую таблицу (в ячейках – время выполнения (в секундах) соответствующих запросов в условиях отсутствия ключей, наличия ключей и индексов по полю, которое использует соответствующий запрос):

Таблица 3. Использование индексов (время выполнения запросов, сек.)

Запрос

Без ключа

Ключ FInt1

Ключ FInt1 + некласт. индекс

Ключ FStr1 + некласт индекс

4.А (по FInt1)

4.Б (по FChar2)

4.С (по FDate1)

  1.  Написать отчёт. В отчёт должны входить конфигурация компьютера, на котором выполнялась работа, все запросы, используемые при выполнении лабораторной работы, и выводы. В выводах объяснить разницу (в том случае, если она более 10%) в размерах различных индексов при различных ключах и разницу в продолжительности выполнения запросов при различных индексов (в том случае, если она более 10%).



1. На тему- Разработка автоматизированной системы управления газосварочным комплексом
2. . Порядок расчета сумм амортизации в налоговом учете Метод.
3. тематики С
4. материя обозначает субстанцию обладающую статусом первоначала объективной реальностью по отношению к со
5. Введение2 Распространение радиоактивных изотопов3 Невдалеке от реак
6. XVIII вв. в Западной Европе происходит становление современных национальных государств
7. . ~ 200 с. ил. 175 ~ 180 Глава 12 АРХИТЕКТУРА КОНЦА ВЕКА Пусть расцветают все цветы
8. Великая Охота Роберт ДжорданВеликая Охота Серия- Колесо Времени ~ 2 OCR Bcumo Mnuscrip
9. реферат дисертації на здобуття наукового ступеня кандидата медичних наук Київ 2005
10. Автоматична коробка перемикання переда