Немного о том как Oracle хранит данные.
Все данные базы данных Oracle хранятся в логическом пространстве. Логическое пространство состоит из блоков данных. Блоки объединяются в экстенты, а те в сегменты.
Один блок данных соответствует определенному числу байт физического пространства базы данных на диске.
Экстент представляет собой смежные блоки данных, выделенные для хранения определенного типа информации.
Экстенты объединяются в сегменты. Сегмент представляет собой набор экстентов, каждый из которых был выделен для конкретной структуры данных и все они хранятся в одном и том же табличном пространстве.
Oracle выделяет память для сегментов одним экстентом. По мере заполнения экстентов данного сегмента, Oracle выделяет ему следующий экстент. Потому, экстенты сегмента могут или не могут быть смежными на диске.
Итак, сегмент и все его экстенты хранятся в одном табличном пространстве. В табличном пространстве, сегмент может включать в себя экстенты из более чем одного файла, то есть, сегмент может занимать несколько файлов данных. Тем не менее, каждый экстент может содержать данные только из одного файла данных.
Теперь о главном
Когда мы создаем объекты базы данных, то указываем параметры хранения. Среди прочего мы должны указать значения процента свободной памяти блока PCTFREE и процент занятой памяти блока PCTUSED при достижении, которой в блок можно вставлять новые записи.
PCTUSED может рассматриваться как метка нижнего уровня, а PCTFREE как метка верхнего уровня. Если в блоке данных свободного места меньше, чем указано в PCTFREE, то новая запись в этот блок добавляться не будет, пока в нем заполненного места не станет меньше чем PCTUSED. В сумме PCTUSED и PCTFREE не может быть больше 100. (По умолчанию PCTUSED равно 10 а PCTFREE равно 40)
Если приложение часто выполняет обновление записей в блоке, и эти записи растут, тогда PCTFREE должно быть высоким, а PCTUSED низким. Это оставит больше пространства в блоке для роста записей.
Если часто делаются вставки новых записей, а не изменения старых, то PCTFREE можно поставить не большим, а PCTUSED средним, чтобы уменьшить цепочки записей.
Если цель вашего приложения в высоком быстродействии и памяти много, то ставьте PCTFREE очень большим, а PCTUSED очень маленьким.
Все данные базы данных Oracle хранятся в логическом пространстве. Логическое пространство состоит из блоков данных. Блоки объединяются в экстенты, а те в сегменты.
Один блок данных соответствует определенному числу байт физического пространства базы данных на диске.
Экстент представляет собой смежные блоки данных, выделенные для хранения определенного типа информации.
Экстенты объединяются в сегменты. Сегмент представляет собой набор экстентов, каждый из которых был выделен для конкретной структуры данных и все они хранятся в одном и том же табличном пространстве.
Oracle выделяет память для сегментов одним экстентом. По мере заполнения экстентов данного сегмента, Oracle выделяет ему следующий экстент. Потому, экстенты сегмента могут или не могут быть смежными на диске.
Итак, сегмент и все его экстенты хранятся в одном табличном пространстве. В табличном пространстве, сегмент может включать в себя экстенты из более чем одного файла, то есть, сегмент может занимать несколько файлов данных. Тем не менее, каждый экстент может содержать данные только из одного файла данных.
Теперь о главном
Когда мы создаем объекты базы данных, то указываем параметры хранения. Среди прочего мы должны указать значения процента свободной памяти блока PCTFREE и процент занятой памяти блока PCTUSED при достижении, которой в блок можно вставлять новые записи.
PCTUSED может рассматриваться как метка нижнего уровня, а PCTFREE как метка верхнего уровня. Если в блоке данных свободного места меньше, чем указано в PCTFREE, то новая запись в этот блок добавляться не будет, пока в нем заполненного места не станет меньше чем PCTUSED. В сумме PCTUSED и PCTFREE не может быть больше 100. (По умолчанию PCTUSED равно 10 а PCTFREE равно 40)
Если приложение часто выполняет обновление записей в блоке, и эти записи растут, тогда PCTFREE должно быть высоким, а PCTUSED низким. Это оставит больше пространства в блоке для роста записей.
Если часто делаются вставки новых записей, а не изменения старых, то PCTFREE можно поставить не большим, а PCTUSED средним, чтобы уменьшить цепочки записей.
Если цель вашего приложения в высоком быстродействии и памяти много, то ставьте PCTFREE очень большим, а PCTUSED очень маленьким.
Комментариев нет:
Отправить комментарий