Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Память для таблиц

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

Если фраза storage для таблицы не определена, таблица будет использовать заданную по умолчанию память для табличного пространства, в котором она создана. По умолчанию таблица использует пять блоков Oracle при первоначальном создании и еще пять блоков, когда ее размер начнет увеличиваться; затем объем любой дополнительной памяти, которую она будет использовать, возрастет на 50 процентов… Читать ещё >

Память для таблиц (реферат, курсовая, диплом, контрольная)

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

Фраза STORAGE

В конце оператора create table можно ввести фразу storage для управления объемом памяти, которая будет распределена для таблицы при ее издании увеличении размеров. Эта фраза storage может также применяться к другим объектам базы данных, которые используют память (таким, как индексы).

Если фраза storage для таблицы не определена, таблица будет использовать заданную по умолчанию память для табличного пространства, в котором она создана. По умолчанию таблица использует пять блоков Oracle при первоначальном создании и еще пять блоков, когда ее размер начнет увеличиваться; затем объем любой дополнительной памяти, которую она будет использовать, возрастет на 50 процентов по сравнению с последним экстентом. Таблица станет запрашивать все больше и больше памяти по мере ее увеличения.

Каждый фрагмент памяти, используемый таблицей, именуется экстентом. Самый первый экстент именуется экстентом initial, а все другие — вторичными экстентами.

В следующем примере показано создание таблицы с параметрами памяти, отличными от параметров по умолчанию:

CREATE TABLE mytab (mycol VARCHAR2(1)).

STORAGE (INITIAL 100K NEXT 20K MINEXTENTS1 MAXEXTENTS 99 PCTINCREASE 50);

Эта таблица создана со 100 Кб для первого экстента даже при том, что в таблице нет никаких данных. Число блоков Oracle, соответствующих этому объему, зависит от размера блока Oracle, выбранного при первоначальном создании базы данных.

При вставке строк в таблицу память, выделенная таблице для первого экстента, начинает заполняться данными. После заполнения первого экстента таблица автоматически распределит еще один экстент с размером, определенным в фразе STORAGE, который в рассматриваемом случае равен 20 Кб. После заполнения данными второго экстента таблица распределит третий экстент, который будет на 50 процентов больше второго, т. е. равен 30 Кб. Величина, на которую он будет возрастать, определена во фразе storage параметром pctincrease. В четвертом экстенте она увеличится еще на 50 процентов и будет составлять 46 Кб (30 Кб + 50% = 45 Кб — память, которая может быть распределена, если блок Oracle составляет 1 Кб, или округлена до 46 Кб при размере блока 2 Кб). Каждый раз при возрастании таблица продолжает распределять экстенты с увеличением их размеров на 50%. В конечном счете, это может привести к возникновению проблем, связанных с исчерпанием свободного пространства памяти. Устранить эту проблему можно либо выбрав следующий экстент малого размера, либо уменьшив значение параметра pctincrease.

Параметр MINEXTENTS определяет, сколько экстентов таблица должна распределить при ее первоначальном создании; значение по умолчанию — один. Если для этого параметра памяти используется значение по умолчанию, его не нужно указывать во фразе. Величина, на которую он будет возрастать, определена во фразе STORAGE.

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

В предыдущем примере максимум был установлен равным 99. В Огас1е7. 3 нет никакого абсолютного максимума для этого параметра (в предыдущих выпусках он имелся и был основан на размере блока Oracle, используемом для базы данных).

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

Таблица может быть реорганизована с использованием утилит экспорта и импорта или может быть создана копия таблицы с подходящими параметрами памяти и со скопированными в нее данными. (Это рассматривается в одном из последующих разделов.).

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