Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры БД.docx
Скачиваний:
16
Добавлен:
26.09.2019
Размер:
592.64 Кб
Скачать

34.. Статистика столбцов и индексная статистика. Операторы создания обновления статистики.

Неплотные индексы

Поиск статист. Групп -> вычисление номера строки

Создание статистики:

  • Опции БД auto create statistics

  • Вручную

CREATE STATISTICS <имя индекса\статистики>

ON <имя таблицы\представления> (<столбец> [,…n])

UPDATE STATISTICS

Получение информации по статистике

DBCC SHOW_STATISTICS (authors, ..ruct)

Использование индексов:

FROM <имя таблицы>

[WITH (INDEX (<имя или ID индекса> [,..n]..))]

35.. Правила и умолчания в Transact sql. Примеры создания и использования.

Правило – сохраняемое в БД поименованное логическое выражение, предназначенное для проверки принадлежности данных области возможных значений. Правила использует логические выражения, аналогичные условиям в параметре WHERE.

В выражении для правила записывается формальный параметр, задаваемой локальной переменной в виде @<имя переменной>

В SQL Server 2005 правила создаются только из T- SQL

Правило необходимо связать со столбцами таблиц или пользовательскими типами. Одно правило можно использовать для многих столбцов, принимающих значения из одного множества.

При проверке правила параметр заменяется проверяемым значением, и если выражение оказывается истинно, то проверяемое значение принимается в базу, или переменную, иначе – отвергается.

Применение правил оправдано, если один и тот же тип ограничения используется во многих столбцах.

Создание и использование правил:

CREATE RULE [<имя схемы>].<имя правила>

AS <логическое выражение>

Например, CREATE RULE my_rule AS @pp like '[0-9][0-9][0-9]' проверяет, содержит ли строка из трех символов только десятичные цифры.

CREATE RULE Today AS @a <= GETDATE ( )

Для связывания правила с проверяемыми данными применяется системная хранимая процедура:

SP_BINDRULE ‘< имя правила>’, ‘<имя столбца или типа>’

[, ’FUTUREONLY’].

Опция FUTUREONLY для пользовательских типов и обязывает применять правила только к вновь появляющимся данным.

Пример присоединения: sp_bindrule ‘Today', ‘T1.BD'

  • Отсоединение правила

SP_UNBINDRULE ‘<имя столбца или типа>’

[, ’FUTUREONLY’].

FUTUREONLY - отсоединение только для проверки будущих данных, не отсоединяет от столбцов, использующих этот тип

Удаление правила из БД

  • DROP RULE <имя правила> --

  • Умолчания - поименованные константные выражения, используемые при отсутствии явного задания данных.

  • Умолчания базы данных - вносят значения в поля таблицы и данные пользовательского типа, если эти значения не были заданы операторами, создающими данные

Создание умолчаний:

  • Создание умолчания выполняет оператор:

CREATE DEFAULT <имя умолчания> AS <константное выражение>

Пример создания умолчания на вчерашнюю дату:

CREATE DEFAULT YeserDay As GETDATE ( ) - 1

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

SP_BINDEFAULT ‘<имя умолчания>’, ‘<имя столбца | типа>’

[, ‘<FUTUREONLY >’]

SP_BINDEFAULT ‘YeserDay’ , ‘My_type’ , FUTUREONLY

-- 1. создается тип TypeYeserDay

Create Type TypeYesterDay FROM DateTime

Go

-- 2. создается умолчание (вчерашняя дата)

CREATE DEFAULT YeserDay As GETDATE ( ) - 1

Go

-- 3. умолчание присоединяется к типу

SP_BINDEFAULT 'YesterDay', TypeYeserDay

-- 4. создается таблица, столбец F2 с типом, имеющим умолчание

create table T1(F1 int identity(1,1) primary key,

F2 TypeYesterDay)

-- в таблицу добавляется строка «без данных»

Insert T1(F2) Values ( default )

select * From T1

F1 F2

----------- -----------------------

  1. 2008-10-27 10:39:44.000(это вчерашняя дата)

-- особенности умолчания в типе для переменной

declare @D TypeYesterDay

select @D

-----------------------

NULL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]