Лабораторная работа № 12. Работа с файлами базы данных и индексами
Объясните, с чем связана ошибка при выполнении этой команды? С помощью команды ALTER VIEW измените представление так, чтобы индекс можно было создать, и создайте индекс. Снова выполните запрос. Вспомните, что такое «индексированное представление» и чем оно отличается от обычного. Попробуйте для представления dbo. vBooks создать уникальный кластерный индекс, используя поле LibID: Опишите, как… Читать ещё >
Лабораторная работа № 12. Работа с файлами базы данных и индексами (реферат, курсовая, диплом, контрольная)
В этой лабораторной работе будут рассмотрены вопросы, связанные с физическим размещением БД на дисках, а также с созданием и использованием индексов. В работе будет использоваться «библиотечная» база MyLib, созданная в процессе выполнения лабораторной работы № 9.
Получение информации о файлах и файловых группах. Запустите Management Studio и выполните подключение к экземпляру SQL Server. По документации SQL Server ознакомьтесь со столбцами системных представлений sys. database_files и sys.filegroups. Создайте новый запрос (кнопка панели инструментов «Создать запрос») и выполните приведенный ниже код (предполагается, что созданная ранее база называется MyLib):
use [MyLib];
до.
select * from sys. database_files;
select * from sys. filegroups;
go.
Опишите, как организовано хранение созданной вами БД. Найдите аналогичную информацию, используя графический интерфейс SQL Server Management Studio (в свойствах БД — разделы Files и FileGroups).
Напишите и выполните код, создающий БД с двумя файловыми группами, в первой из которых (PRIMARY) один файл, во второй — два (здесь может пригодиться создающий БД скрипт, который вы анализировали в ходе выполнения лабораторной № 9). Для хранения журнала также определите два файла.
Выберите данные из представлений sys. database_files и sys. filegroups и проанализируйте результат.
Работа с индексами. Используя системные представления sys. schemas, sys. tables, sys. indexes, получите сведения о схемах, таблицах и индексах, определенных в вашей БД. Проанализируйте полученную информацию. Как называются индексы, поддерживающие ограничения первичного ключа и уникальности, заданные при создании таблиц?
На панели инструментов включите отображение плана выполнения запроса (рис. П. 12.1). Выполните запрос.
SELECT Title FROM Book;
Какой индекс задействуется при выполнении этого запроса и почему?
Рис. П. 12.1. Отображение плана выполнения.
С помощью оператора Create Index создайте для таблицы Book некластерный неуникальный индекс для столбца Title. Индекс должен упорядочиваться по возрастанию значений столбца. С помощью представления sys. indexes убедитесь, что индекс появился. Ознакомьтесь со свойствами созданного индекса, прокомментируйте основные из них. Снова выполните предыдущий запрос и сравните планы выполнения. В чем разница?
Будет ли созданный вами индекс использоваться при выполнении приведенного ниже запроса? Обоснуйте свое предположение и проверьте его:
SELECT Title, Author.
FROM Book.
WHERE Title LIKE 'Введение %'.
and Author LIKE 'Д%';
Создайте новый индекс на поле Title, где поле Author будет выступать в качестве добавленного (указывается в секции INCLUDE). Снова выполните предыдущий запрос. Изменилось ли что-нибудь в плане выполнения запроса? Почему?
Выполните приведенный ниже запрос и проанализируйте его план выполнения:
SELECT LibID, Author, Title, Publisher.
FROM dbo. Book INNER JOIN dbo. BooklnLib ON.
dbo. Book. BookID=dbo.BooklnLib.BookID;
На основе предыдущего запроса создайте представление.
CREATE VIEW dbo. vBooks AS.
SELECT LibID, Author, Title, Publisher.
FROM dbo. Book INNER JOIN dbo. BooklnLib ON.
dbo. Book. BookID=dbo.BooklnLib.BookID;
Выполните запрос (отличается ли его план выполнения от плана, полученного ранее?):
SELECT * FROM dbo. vBooks;
Вспомните, что такое «индексированное представление» и чем оно отличается от обычного. Попробуйте для представления dbo. vBooks создать уникальный кластерный индекс, используя поле LibID:
CREATE UNIQUE CLUSTERED INDEX ix_VBOOks on.
dbo.vBooks (LibID);
Объясните, с чем связана ошибка при выполнении этой команды? С помощью команды ALTER VIEW измените представление так, чтобы индекс можно было создать, и создайте индекс. Снова выполните запрос.
SELECT * FROM dbo. vBooks;
В чем различие в планах выполнения, если сравнивать с планом, полученным ранее?