Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
76-86.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
1.03 Mб
Скачать
  1. Структуры памяти и индексные структуры SQL Server

  1. Иерархия объектов в структуре данных.

Можно считать, что данные в СУБД SQL Server представлены с помощью своеобразной иерархии структур, хотя эта иерархия довольно проста.

База данных как объект иерархии структур данных является наиболее известной каждая база данных представляет собой уникальную сущность, поскольку она находится на самом высоком уровне структур хранения данных (на каком-то конкретном сервере). Уровень базы данных - это наивысший уровень, на котором могут устанавливаться блокировки.

Блокировка - это объект одновременно напоминающий замок и маркер места хранения данных, которые uсnолъзуются системой.

  1. Иерархия объектов в структуре данных. Экстент.

Экстент - это основная единица памяти, используемая при распределении пространства для таблиц и индексов. Экстент состоит из восьми смежных страниц данных объемом 64 Кбайт.

Ниже приведены наиболее важные сведения, касающиеся применения экстентов.

Если вслед за заполнением очередного экстента возникает необходимость записать следующую строку, то ДЛЯ этой строки выделяется пространство, объем которого определяется не размером самой строки, а размером целого нового экстента.

После записи новой строки во вновь выделенный экстент остальной объем памяти остается свободным. Таким образом, происходит заблаговременное распределение пространства, поэтому в СУБД SQL Server достигается экономия времени, поскольку не требуется выполнять операцию распределения пространства памяти после поступления каждой новой строки.

В целом одним из важных преимуществ распределения пространства памяти с помощью экстентов является то, что часть пространства распределяется заблаговременно, поэтому в СУБД SQL Server удается исключить определенную часть затрат времени при выполнении операций распределения памяти. Дело в том, что в СУБД SQL Server операция распределения дополнительного пространства выполняется только после того, как потребуется новый экстент, поэтому не приходится заниматься проблемами распределения пространства при записи каждой новой строки.

Необходимо различать объем пространства; занимаемый экстентами, u обьем пространства, который занимaeт сама база данных. Пространство памяти, выделенное для базы данных На жестком диске, становится недоступным для распределения памяти под какиелuбо другие объекты; т.е. объем свободного пространства На жестком диске умeньшается На эту величину. А экстенты, в свою очередь, распределяются в пределах общего объема пространства, зарезереированноео для базы данных.

  1. Иерархия объектов в структуре данных. Страница.

Во многом аналогично тому, что экстент является единицей распределения памяти в базе данных, страница - это единица распределения памяти в каждом конкретном экстенте. Каждый экстент состоит из восьми страниц.

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

Страницы подразделяются на несколько типов. В настоящей книге рассматриваются только типы страниц, описанные ниже.

О Страницы данных в основном не требуют пояснений. Фактически страницы данных обеспечивают хранение данных, относящихся к таблице. К данным, размещаемым на страницах, не относятся только данные типа BLOB, которые не определены с помощью опции "text in row" (текст, заданный в строке) или параметра varchar (тах) .

О Страницы индекса также в основном не требуют пояснений. Они применяются для хранения страниц листового и нелистового уровней некластеризованного индекса, а также страниц нелистового уровня кластер изованного индекса

Разбиение одной страницы на две

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

Но если применяется кластеризованный индекс, процесс разбиения страниц происходит иначе. Если на таблице задан кластеризованный индекс и возникает такая ситуация, что очередная вставляемая строка должна быть физически расположена в качестве последней строки в таблице, то распределяется еще одна страница и новая строка записывается на эту страницу, причем перемещение каких-либо существующих данных не происходит. Дополнительные сведения о разбиении страниц будут приведены при описании индексов.

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