Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный_практикум_по_АБД_sqlserver.docx
Скачиваний:
4
Добавлен:
03.08.2023
Размер:
496.52 Кб
Скачать

6. Проверка индексных структур

В этом упражнении перед созданием индексов будет проверяться структура таблицы базы данных Credit. Затем Вы создадите различные типы индексов с различными значениями FillFactor и выявите их влияние на структуру таблицы.

6.1. Обследование первоначальной структуры таблицы.

Наберите и выполните следующие команды, выделяя их и выполняя в виде отдельных пакетов:

USE Credit

GO

EXEC sp_spaceused member

SELECT * FROM sysindexes WHERE id = OBJECT_ID('member')

DBCC SHOWCONTIG ('member')

GO

Результаты запишите в табл.2

Таблица 2

Информация

Источник

Результат

Number of rows(Число строк)

Sp_spaceused: rows

Number of indexes (Число индексов)

SELECT * FROM sysindexes WHERE ID=OBJECT_ID(‘member’) (см. Колонку IndID)

Number of pages

(Количество страниц)

DBCC SHOWCONTIG: Page scanned

Number of rows per page (Число строк на странице)

Число строк/число страниц

Number of extents

(Число экстентов)

DBCC ShowContig:Extent Switches

Average extent fill

(Средняя степень заполнения экстента)

DBCC ShowContig:Extent:Avg.Pages per Extent

Avrage page fill

(Средняя степень заполнения страниц)

DBCC ShowContig:Extent:Avg.Pages Density (full)

6.2. Создание кластерного индекса. После создания индекса по полю Member_no с помощью команды

CREATE UNIQUE CLUSTERED INDEX mem_no_CL ON member (member_no).

Затем с помощью команд, показанных в предыдущем упражнении заполните следующую таблицу (табл.3)

Таблица 3

Информация

Источник

Результат

Number of clustered index pages(число страниц в кластерном индексе)

Sysindexes :used

Number of data pages in the clustered index (число страниц с данными в кластерном индексе)

Sysindexes : dpage

Number of non-data pages in the clustered index (Число страниц в кластерном индексе, не занятых данными)

Used-dpage

Number of indexes (Число индексов)

SELECT * FROM sysindexes WHERE ID=OBJECT_ID(‘member’) (см. Колонку IndID)

Number of pages

(Количество страниц)

DBCC SHOWCONTIG: Page scanned

Number of rows per page (Число строк на странице)

Число строк/число страниц

Number of extents

(Число экстентов)

DBCC ShowContig:Extent Switches

Average extent fill

(Средняя степень заполнения экстента)

DBCC ShowContig:Extent:Avg.Pages per Extent

Avrage page fill

(Средняя степень заполнения страниц)

DBCC ShowContig:Extent:Avg.Pages Density (full)

Сравните показатели табл. 2 и табл.3.

Остались страницы заполненными после создания кластерного индекса?

Сделал ли кластерный индекс таблицу более компактной. Почему да или почему нет?

6.3. Создание некластерного индекса.

Создайте некластерный индекс следующей командой:

CREATE NONCLUSTERED INDEX indx_fname ON member(firstname)

Выполните команду для просмотра таблицы sysindexes для таблицы member.

Запишите полученную информацию в табл.4

Таблица 4

Информация

Источник

Результат

Number of pages in nonclustered index on FIRSTNAME column (число страниц в некластерном индексе по полю FIRSTNAME)

Sysindexes :used

Number of pages in leaf level (число страниц на листьевом уровне)

Sysoindexes : dpage

Число строк на листьевых страницах

Число строк таблицы/число листьевых страниц

6.4. Создание некластерного индекса с параметром FillFactor

Удалите существующий некластерный индекс командой

DROP INDEX member.indx_fname,

а затем создайте его заново с параметром FillFactor равным 25.

Используя таблицу sysindexes, как в предыдущих примерах, заполните таблицу 5, аналогичную по составу табл.4.

Как влияет параметр FillFactor на степень заполнения страниц на листьевом уровне?