Помощь в написании студенческих работ
Антистрессовый сервис

Оценка объема памяти, необходимого для таблицы

РефератПомощь в написанииУзнать стоимостьмоей работы

Еще нужно знать, что при создании таблицы оставляют часть блока Oracle свободной, чтобы дать возможность расти строкам таблицы; это определяется параметром pctfree в конце оператора CREATE TABLE. С использованием значений для непроизводительных затрат в блоках Oracle, строках и т. д., упомянутых в нескольких предыдущих абзацах, можно привести формулу к следующему виду: Требуемая память = Размер… Читать ещё >

Оценка объема памяти, необходимого для таблицы (реферат, курсовая, диплом, контрольная)

Если известно, сколько примерно потребуется памяти для таблицы, можно установить это число в качестве значения параметра экстента initial для таблицы.

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

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

  • 1. Прежде всего, необходимо определить размер блока Oracle, используемого для базы данных, который обычно устанавливается по умолчанию равным 1 Кб, 2 Кб или 4 Кб, в зависимости от используемой платформы. Эти блоки Oracle используются для хранения данных таблицы.
  • 2. Наиболее важная часть формулы состоит в определении числа строк и среднего размера каждой строки. Каждая строка имеет в блоке дополнительные пять байтов памяти для шапки строки. Кроме того, каждый столбец, содержащий значение, имеет еще один байт памяти для хранения длины столбца. На основе этой информации можно узнать, сколько памяти требуется для строк:

Память для строк = Число строк * (Средний размер строки + 5 + По 1 байту для каждого непустого столбца).

3. Расчет, выполненный на шаге 2, используется для определения размеров блоков Oracle. Однако для хранения данных будут использоваться не все блоки Oracle. В каждом блоке Oracle распределены некоторые непроизводительные байты (их фиксированный размер для каждого блока данных равен 57 байт). К тому же, дополнительно распределяются 23 байта (для каждого значения параметра inittrans, для таблицы; обычно это значение принимается равным значению по умолчанию, 1).

Число байтов в блоке Oracle, предназначенных для хранения данных = (размер блока Oracle — 57 — (23 * INITTRANS)).

  • 4. Еще нужно знать, что при создании таблицы оставляют часть блока Oracle свободной, чтобы дать возможность расти строкам таблицы; это определяется параметром pctfree в конце оператора CREATE TABLE.
  • 5. Кроме того, необходимо распределить дополнительный объем памяти, чтобы учесть ошибки в ее оценке и дальнейший рост — возможно, еще 10 или 20 процентов.

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

Требуемая память = размер блока Oracle * (Число байтов для данных/ Объем памяти в каждом блоке Oracle).

С использованием значений для непроизводительных затрат в блоках Oracle, строках и т. д., упомянутых в нескольких предыдущих абзацах, можно привести формулу к следующему виду:

Требуемая память = Размер блока Oracle *((Число строк * (Средний размер строки + 5 + По 1байту на каждый непустой столбец)) /((Размер блока Oracle — 57 — (23* IN1TTRANS)) * (1- PCTFREE/100))).

Предыдущая формула дает количество памяти, которое нужно распределить для начального экстента таблицы. Это значение, вероятно, можно увеличить на 10% — резервный фонд. Если объем памяти, требуемой для таблицы, превышает эту величину, таблица автоматически распределит дополнительные экстенты на основе параметров памяти NEXT и pctincrease.

Показать весь текст
Заполнить форму текущей работой