324
ностью исключены за счет использования в некластеризованных индек-
сах значений ключей кластеризованного индекса вместо номеров физи-
ческих страниц в случае, когда таблица имеет оба типа индексов.
Индексы таблиц хранятся в виде страниц. Каждая страница разме-
ром 8192 байт включает заголовок, имеющий длину 96 байт. Еще один
фрагмент страницы используется для размещения других структур дан-
ных, например информации о переполнении строк. Вся оставшаяся часть
страницы (8060 байт) предназначена для размещения данных. Каждая
строка включает элемент индекса (значение индексируемого поля таб-
лицы) и идентификатор RowID (включающий идентификатор файла,
номер страницы, номер строки), указывающий на соответствующую за-
пись в таблице.
Организация и оптимизация доступа к данным
Вследствие объективно существующей разницы в скорости работы
процессоров и оперативной памяти с одной стороны, и устройств внеш-
ней памяти с другой, буферизация страниц базы данных в оперативной
памяти — единственно реальный способ достижения удовлетворитель-
ной эффективности СУБД. Кроме этого используется механизм распре-
деленного хранения информации - расщепления данных между файлами
и файловыми группам, физически размещаемыми на разных устройствах
или RAID-массивах. Логически такое устройство представляется как
единое целое, но на самом деле состоит из нескольких физических дис-
ков. Данные на дисках размещаются блоками одной длины и таким об-
разом, легко могут быть распределены по всем дискам.
Стратегия буферизации, применяемая в операционных средах, не
соответствует целям и задачам СУБД, поэтому для оптимизации обра-
ботки данных одной из главных задач СУБД является создание эффек-
тивной системы управления процессом буферизации.
Память, управляемая СУБД, состоит из нескольких типов буфе-
ров:
− буфера страниц данных, с которыми работает СУБД;
− буфера страниц журнала транзакций, которые отражают про-
цесс выполнения транзакции — последовательности операций над БД,
переводящей БД из одного непротиворечивого состояния в другое не-
противоречивое состояние;
− системные буферы, которые содержат общую информацию о
БД, о пользователях, о физической структуре БД, о базе метаданных.
Если бы запись об изменении базы данных реально немедленно
записывалась во внешнюю память, это привело бы к существенному за-
медлению работы системы. Поэтому записи в журнал тоже буферизуют-
ся: при нормальной работе очередная страница выталкивается во внеш-
нюю память журнала только при полном наполнении записями.