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



              

Формулы для оценки размера БД


С целью упрощения вычислений размера базы данных, в настоящем разделе мы будем проводить вычисления на примере СУБД SQLBASE. Размер базы данных может быть оценен по формуле

DB_ Size=\sum_\forall RegularTables + \sum_\forall HashedTables + \sum_\forall Indexes + \sum_\forall Views + Overhead

Перед тем как вычислить размер таблицы, необходимо вычислить размеры всех ее колонок.

Вычисление размера колонки. Вычисление размера колонки зависит от типа домена колонки. Размер колонки или столбца таблицы - это число символов, которое отводится СУБД для хранения колонки заданного типа.

Как правило, в определении таблицы задаются максимальные размеры полей указанного типа для данной предметной области. Например, предполагается, что колонка адреса компании не будет занимать более 50 символов. С другой стороны, на практике, на реальных данных средний размер колонки адреса компании может составлять 30 символов. Расчет размера базы данных целесообразно проводить исходя из среднего размера колонок таблиц.

Типичные размеры колонок заданного типа приведены в таблице 13.2 ниже.

Таблица 13.2. Типичные размеры колонок в зависимости от типа данных

Тип данныхРазмер колонки
CharacterЧисло символов в строке
Number[(NumberOfDigits + 2)/ + 1 байт
Date5 байт
DateTime12 байт
Long varchar12 байт плюс число сраниц для хранения данных

Размер строки таблицы определяется как сумма размеров всех ее колонок по формуле

Data _ Length =

всех _ длин _ колонок

Вычисление размера таблицы. Основываясь на значении Data_Length можно оценить размер обычной таблицы или хэш-таблицы. Формулы для выполнения такой оценки приведены в таблицах 13.3 и 13.4. Различие в методике расчета размера хэш-таблицы заключается в необходимости учитывать параметр загрузки хэш-таблицы (packing_density), который устанавливается при определении такой таблицы.

Таблица 13.3.

ПараметрФормула
Row_LenghtДлина строки на физической странице включает в себя длину заголовка и размер строки таблицы, которая вычисляется по формуле Row_Lenght = 18 + (2 * число_колонок) + Data_Lenght
Row_Lenght_with_StackДлина строки с размером стека Row_Lenght_with_Stack = Row_Lenght * 100 (100 - PCTFREE)
Usable_Row_Page_SizeИспользуемая СУБД длина строки на странице. В SQLBASE длина заголовка страницы равна 86 байт Usable_Row_Page_Size = 1024 - 86 = 936 байт
Rows_per_PageЧисло строки на страницу: Rows_per_Page = [Usable_Row_Page_Size / Row_Lenght_with_Stack]
Nbr_Row_PagesЧисло строк на странице: Nbr_Row_Pages = [NbrOfRows / Rows_per_Page],где NbrOfRows - предполагаемое число строк в таблице
Nbr_Long_PagesЧисло страниц, занимаемых длинными строками: Nbr_Long_Pfge = NbrOfRows * Nbr_Long_Pages_per_Long_Col, Nbr_Long_Pages_per_Long_Col - число длинных строк на страницу
Total_Data_PageЧисло страниц данных: Total_Data_Page = Nbr_Row_pages + Nbr_Long_Pages
<


Содержание  Назад  Вперед