Автоматическое управление памятью в Oracle 11g - Переменные размеры экстентов
ОГЛАВЛЕНИЕ
Переменные размеры экстентов
Наименьшим элементом в памяти ASM является единица размещения (allocation unit - AU), идейно очень похожая на блок базы данных Oracle. При создании сегментов базы данных, таких как таблицы или индексы, наименьшей единицей размещения является не блок, а экстент, содержащий в себе много блоков. Можно изменять размер экстентов сегмента.
В ASM очень похожая идея: когда файлы создаются в дисковой группе ASM, наименьшей адресуемой единицей является экстент, а не AU. В базе данных Oracle 10g AU и экстенты являются взаимозаменяемыми; один экстент состоит ровно из одной AU.
Дисковым группам, совместимым с 10g, требуется память в разделяемом пуле для каждого экстента. Для больших баз данных, соответственно, необходимо большое количество памяти. Поэтому, если размер AU составляет 1MB (это значение по умолчанию), то базе данных объемом 1TB потребуется разместить более одного миллиона экстентов в разделяемом пуле.
В Oracle Database 11g размеры экстентов больше не равны размерам AU. Когда файл создается, размер экстентов начинается с 1MB. После того, как файл достигнет определенного порога, размер экстента увеличивается до 4MB, затем до 16MB и, наконец, после некоторого порога размер экстента становится 64MB. Нет необходимости беспокоиться о размерах, экземпляр автоматически назначает соответствующий размер экстента. Поскольку меньшее количество экстентов может разместить большее количество данных, общее количество экстентов в разделяемом пуле существенно снижается, что улучшает производительность в несколько раз.
Переменные размеры экстентов могут вносить некоторую фрагментацию, когда файлы сильно расширяются и сокращаются. Если потребуется дефрагментация, ASM решит эту проблему автоматически.