Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

4.3.6.7. Представления

Создание/изменение представления (вида):

Create/Alter View <имя вида> [(<новое имя столбца представления>, ...)]

[With encryption] As Select <текст запроса> [With Check Option]

With encryption - шифрование текста команды создания вида.

With Check Option ‑ блокировка сервером изменений, приводящих к исчезновению строк из представления (например, при Where Oklad>100000 блокируются изменения, которые устанавливают оклад меньше 100000).

В запросе запрещается использование переменных, фраз Order By, Compute, Into и ссылки на временные таблицы.

Переименование представления:

sp_rename <старое имя>, <новое имя>, ‘Object’.

Удаление представлений: Drop View <имя представления> [, …] .

Просмотр параметров/зависимостей представления:

sp_help/sp_depends <имя представления>.

4.3.6.8. Индексы

Создание индекса (размером до 900 байт):

Create [Unique] [{Clustered | Noclustered}]

Index <имя индекса> On <имя таблицы> (<поле 1>[, <поле 2>] ,…)

[With <спиcок дополнительных параметров>] [On <имя группы файлов>]

Clustered/Noclustered - кластерный/обычный индекс.

Список дополнительных параметров ‑ Ignore_Dup_Key (игнорирование пов­­­­то­­ряющихся индексов, если указан уникальный индекс Unique), Sorted_Data (индекс уже отсортирован), Sorted_Data_Reorg (физически от­сор­­тировать таблицу по индексу), Ignore_Dup_Row (удаление пов­то­ряющихся значений), Drop_Existing (кластерный индекс создается снова), On <имя группы файлов> ‑ индекс создается в отдельной файловой группе.

Удаление индексов:

Drop Index [<владелец таблицы>.]<имя таблицы>.<имя индекса> [, …]

Переименование индекса производится хранимой процедурой:

sp_rename ‘<старое имя>’, ‘<новое имя>’, ‘INDEX’

Перестроение индексов для перераспределения индексных страниц:

Dbcc Dbreindex ([‘[<имя базы>.[<владелец таблицы>.]]<имя таблицы>’

[,<имя индекса>[,<фактор заполнения>]]]) [With No_Infomsgs]

При отсутствии индекса перестраиваются все индексы таблицы. Если фактор заполнения равен нулю или не указан, то используется фактор заполнения, указанный при создании индекса. Параметр With No_Infomsgs блокирует вывод всех сообщений с уровнем серьезности с 0 до 10. Эта команда блокирует всю таблицу (dbcc dbreindex ('Сотрудники')).

4.3.6.9. Статистика

Статистика используется для оптимизации доступа к базе данных и содержит информацию о распределении данных в таблице и в индексах. Сер­вер периодически автоматически обновляет эту информацию в пери­оды наименьшей загрузки путем сканирования таблиц.

Создание статистики выполняется командой:

Create Statistics <имя статистики> On <имя таблицы> (<имя колонки>, ...)

[With [{Fullscan | Sample <процент сканирования> Percent]}]

Пример. Create Statistics Стат_Сотрудники ON [Сотрудники] (tn, fam)

Обновление статистики вручную выполняется командой:

Update Statistics <имя таблицы> [index | <имя статистики>, ... ]

[With [Fullscan | Sample <процент сканирования> {Percent | Rows}] ]

[All | Columns | Index]

Пример. Update Statistics [Сотрудники]

Удаление статистики реализуется командой:

Drop Statistics <имя таблицы>.<имя статистики>, ...

Пример. Drop Statistics Сотрудники.Стат_Сотрудники

Просмотр статистики выполняется командой:

Dbcc Show_ Statistics (<имя таблицы>, <имя статистики или индекса>)

Справочная информация выводится в виде таблицы с колонками:

Update ‑ дата и время последнего обновления статистики.

Rows/Rows Sample ‑ число строк в таблице/зафиксированных в статистике.

Steps ‑ число интервалов распределения, созданных в статистике.

Density/All density ‑ плотность данных в индексе/в конкретном индексе.

Average key length ‑ средняя длина значения (плотность) в столбце.

Columns ‑ имя столбца таблицы, для которого выводится плотность.

Steps ‑ шаги диаграммы, созданные для статистики.

Пример. Dbcc Show_Statistics ([Сотрудники],Стат_Сотрудники)