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

Как и во всех базах данных, размер исходных данных всегда получается немного больше после их загрузки. В среднем, исходные данные занимают примерно в 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)\)