Вычисление размера данных пользователя

Как и во всех базах данных, размер исходных данных всегда получается немного больше после их загрузки. В среднем, исходные данные занимают примерно в 1,4 раза больше места после их загрузки (значение коэффициента может отличаться в зависимости от используемых типов данных, типа хранения таблиц, сжатия в базе данных и так далее).

  • Page Overhead – при загрузке данных в ADB они делятся на страницы по 32 КБ. Каждая страница содержит 20 байт служебных данных страницы;
  • Row Overhead – для heap-таблиц; каждая строка данных имеет 24 байта служебных данных строки. В append optimized таблице имеется только 4 байта служебных данных для каждой строки;
  • Attribute Overhead – объем служебных данных для каждого индивидуального значения варьируется в зависимости от выбранного типа данных. Как правило, необходимо использовать наименьший возможный тип данных (при условии, что известны возможные значения, которые имеет столбец).

Индексы распределяются по хостам сегментов, как таблицы. По умолчанию тип индекса в базе данных ADB – это B-дерево. Поскольку размер индекса зависит от количества уникальных значений в нем и данных, которые должны быть добавлены, предварительное вычисление точного размера индекса невозможно. Однако, можно приблизительно оценить размер индекса, используя следующие формулы:

B-tree: \(UniqueValues * (DataTypeSize + 24 байта)\)

Bitmap: \((UniqueValues * NumberOfRows * 1 бит * CompressionRatio / 8) + (UniqueValues * 32)\)