Программирование >>  Программирование баз данных 

1 ... 80 81 82 [ 83 ] 84 85 86 ... 346


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

Тем не менее даже значительные усовершенствования, внесенные в версии 7.0, не привели к резкому увеличению производительности операций с данными типа BLOB, поэтому вместо них чаще применяются альтернативные методы хранения данных, которые будут описаны ниже, при рассмотрении более сложных проблем проектирования.

Страницы типа GAM, SGAM и PFS

Страницы типа САМ (Global Allocation Map- глобальная таблица распределения), SGAM (Shared Global Allocation Map - общая глобальная таблица распределения) и PFS (Page Free Space - свободное пространство страниц) применяются для определения того, какие экстенты и страницы заполнены данными и какие свободны. По существу, на этих страницах хранятся данные, позволяющие узнать, где находится свободное место в базе данных. Подробное изучение страниц этих типов фактически не требуется для того, чтобы заниматься высококачественными разработками или администрированием системы, поэтому их описание выходит за рамки данной книги. А в случае необходимости подробную информацию о страницах указанных типов можно найти в документации Books Online, для этого достаточно выполнить поиск в индексе по аббревиатуре GAM.

Таблица массовых изменений

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

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

Таблица массовых изменений (Bulk Changed Map - ВСМ) представляет собой набор страниц, применяемый для отслеживания того, в каких экстентах были внесены изменения в ходе массовых операций. При этом какие-либо конкретные сведения о внесенных изменениях не регистрируются, а сохраняется лишь информация о том, на какие именно экстенты оказали воздействие массовые операции. Информация об экстентах, подвергшихся изменениям, позволяет расширить возможности резервного копирования базы данных. А именно, появляется возможность при резервном копировании журнала приложить к резервной копии журнала резервную копию физических данных из экстентов, которые были затронуты массовыми операциями.



Таблица дифференциальных изменений

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

При создании дифференциальной резервной копии таблица дифференциальных изменений (Differential Changed Map - DCM) становится источником информации о том, какие экстенты должны быть скопированы. Благодаря этому создается гораздо меньшая и быстрее обрабатываемая (хотя и по-прежнему лишь частичная) резервная копия, поскольку в нее включаются только те экстенты, которые изменились со времени создания предыдущей резервной копии.

Операции разбиения страниц

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

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

Строки

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

В пересчете на количество символов это ограничение выражается как 8060 символов; кроме того, регламентируется максимально допустимое количество столбцов, равное 1024. Но на практике гораздо чаще встречается ситуация, в которой достигается лимит максимально допустимой длины строки, равный 8060, чем ограничение, определяющее максимальное количество столбцов. При количестве столбцов, равном 1024, средняя ширина столбца составляет 8 байтов. Но нелегко найти пример приложения, в котором это значение размера, применяемое для представления данных, было бы достаточным. Обычно исключением из этого правила являются результаты измерений и статистическая информация, поскольку такие приложения требуют, чтобы в базе данных можно было представить большое количество различных показателей для хранения применяемых числовых значений. Но даже в таких приложениях предел количества столбцов, равный 1024 столбцам, достигается очень редко.

Еще раз отметим, что ограничение, согласно которому длина строки не может превышать 8 Кбайт, применяется в обычных условиях. Под этим подразумевается, что строка не выходит за пределы одной страницы, а страница имеет размер 8 Кбайт, но этот предел при нескольких обстоятельствах может быть превзойден; в частности.



положение меняется при использовании данных типа varchar (max) или varbinary (max), а также таких традиционных типов данных BLOB, как Image и Text, Если строка содержит настолько большой объем данных указанных типов, что невозможно поместить их на одной странице, то применяются специальные способы хранения данных, позволяющие распределять данные этого типа по нескольким страницам (при этом одна строка может иметь длину до 2 Гбайт). В этом случае исходная строка используется для отслеживания того, где фактически хранятся строковые или двоичные данные полей с расширенным форматом представления (все прочие поля по-прежнему представлены в исходной строке).

Полнотекстовые каталоги

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

Общие сведения об индексах

В толковом словаре Вебстера индекс определяется следующим образом.

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

Автор обычно использует более простое толкование понятия индекса, в котором применяются термины, относящиеся к базе данных, и определяет индекс как средство, позволяющее ускорить доступ к данным. Тем не менее трактовка понятия индекса, приведенная в словаре Вебстера, не так уж плоха, даже с точки зрения ее применимости в данном контексте.

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

Порядок, учитывающий двоичные значения. При использовании такого подхода сортировка данных происходит с учетом внутреннего представления символа (например, в кодировке ASCII пробел представлен числом 32, буква D - числом 68, буква d - числом 100). Компьютеры в наибольшей степени приспособлены для обработки числовых данных, поэтому эта опция обеспечивает также наибольшее быстродействие. Но, к сожалению, формат внутреннего представления не всегда соответствует приемлемой последовательности сортировки данных; кроме того, применение такой опции при



1 ... 80 81 82 [ 83 ] 84 85 86 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика