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

32.. Фрагментарное размещение таблицы в файловых группах: использование схем и функций размещения для таблицы бд. Модификация структуры таблицы оператором alter table. Примеры.

Размещение данных таблицы в памяти:

  • Неуправляемое размещение

ON <имя файл. Группы> “default”

  • Фрагментация

ON <имя схемы> (<имя столбца, по которому разделяются записи>)

Создание функции разделов:

CREATE PARTITION FUNCTION <имя функции>(<тип данных>)

AS RANGE [LEFT | RIGHT]

FOR VALUES ([<граничные знач. Раздела>[,…n]])[;]

Информация по функциям разделов:

Select * from sys.partition.functions

Номер раздела по значению данного:

[<имя БД>]$PARTITION.<имя функции разделов>

(<выражение для значения>)

Создание схемы разделов:

CREATE PARTITION SCHEME <имя схемы разделов>

AS PARTITION < имя функции разделов> [ALL]

TO (<имя файловой группы>[,….n])[;]

Кол-во ФГ – число разделов

ALTER TABLE - данный запрос используется для добавления, удаления или модификации колонки в уже существующей таблице.

Синтаксис SQL ALTER TABLE

Для добавления колонки в таблицу, используйте следующий синтаксис:

ALTER TABLE table_name

ADD column_name datatype

Для удаления колонки в таблице, используйте следующий синтаксис (не все базы данных позволяют удалять одну колонку):

ALTER TABLE table_name

DROP COLUMN column_name

Для изменения типа данных колонки, используйте следующий синтаксис:

ALTER TABLE table_name

ALTER COLUMN column_name datatype

Пример 1

Есть таблица "Persons":P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Итак, мы хотим добавить новую колонку с именем "DateOfBirth" в таблицу "Persons".

Выполним SQL запрос:1

ALTER TABLE Persons

ADD DateOfBirth date

Результат запроса:P_Id LastName FirstName Address City DateOfBirth

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Пример 2

Теперь мы хотим изменить тип данных колонки "DateOfBirth" в таблице "Persons".

Выполним SQL запрос:1

ALTER TABLE Persons

ALTER COLUMN DateOfBirth year

Удаления колонки

Итак, теперь мы хотим удалить колонку "DateOfBirth" из таблицы "Persons".

Выполним SQL запрос:1

ALTER TABLE Persons

DROP COLUMN DateOfBirth

Результат запроса:P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

33.. Индексы таблиц в ms sql Server: назначение, типы, способы создания. Использование индексов.

Индексы-служебная таблица

  • Ускоряет поиск

  • Ускоряет фильтрацию

  • Ускоряет сортировку

  • Замедляет добавление, удаление, изменение

Автоматически создаются для ключевых полей

Хранятся в таблице sys.indexes

Типы индексов:

  • Кластерный – определяет порядок хранения записей

  • Некластерный

Статистики- информация о данных в столбцах таблицы

Методы поиска в индексе:

  • Блочный

  • Дихотомия

  • Хеширование

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

CREATE [UNIQUE][ CLASTERED | NONCLASTERED]

INDEX <имя индекса> ON <имя таблиц и ..>

(<имя столбца> [ASCIDESC] [,..])

[WITH <опции> ]

[ON <имя файловой группы>/

<имя схемы>

(<имя столбца, по которому разделяются записи индекса>)

Опции индекса: <опции индекса>::=

FILLFACTOR= <% заполнение страниц индекса при его создании>

DROP_EXISTING={ON | OFF} – существование

/CNORE.DUP.KEY={ON |OFF}

[STATISTICS NORECOMPUTE] – без обновления статистики

CREATE NONCLUSTERED INDEX LFIO ON

Authors (au_lname, au_fname)

WITH (FILLFACTOR = 80)

Удаление:

DROP INDEX < имя индекса> ON <имя таблицы> или

DROP INDEX < имя таблицы>, <имя индекса>

Перестроение индекса:

ALTER INDEX {<имя индекса>| ALL} ON <имя таблицы>

{REBUILD [<параметры>] |DISABLE}

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