DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Как оптимально выбрать размер блока базы данных Oracle?

Как оптимально выбрать размер блока базы данных Oracle?


БОЛЬШИНСТВО 32-битовых версий Oracle поддерживают размер блока базы данных вплоть до 16 Кбайт. Это значение на некоторых аппаратных платфор­мах может увеличиться до 64 Кбайт для 64-битовых реализаций Oracle. Невоз­можно переоценить всю значимость правильного конфигурирования размера 

блока базы 

данных Oracle при ее создании, так как он не может быть изменен на протяжении всей жизни базы данных (по крайней мере для версий до Oracle 8.1.7). В Oracle9i поддерживается гибкий метод, предусматривающий наличие разных размеров блоков для разных табличных пространств, что дает шанс скорректировать проблему уже после создания базы данных.
Оптимальное задание размера блока базы данных Oracle может влиять на эф­фективность моделей обращения приложений к вводу/выводу. Это связано с тем, что различные модели отражают свойства различных видов приложений. Транзак-ционные или гибридные системы требуют абсолютно других моделей ввода/выво­да, чем системы для принятия решений или работы с хранилищами данных.

Очень важно
При каждом увеличении в два раза размера блока базы данных Oracle увеличиваются вдвое еще два значения: количество данных в блоке и конкуренция за данные в блоке (благодаря увеличению числа строк). Если не принимать в расчет аспект конкуренции, он может очень легко "просочиться сквозь стены и потом больно укусить". В самык общих чертах, при увеличении вдвое размера блока базы данных следует увеличить в два раза параметры хранения уровня блока, которые контролируют степень параллельного доступа к данным в блоке (типа initransnfreelists). Если этого не сделать, можно в значительной степени усилить конкуренцию на уровне блока (см. раздел "Изменение размера блока базы данных: основные вопросы").
Рекомендации по выбору правильного размера
Нормальной практикой считается конфигурирование базы данных Oracle ме­ньшими размерами блоков для приложений, которые по своей природе являют­ся транзакционными (OLTP). Основная преследуемая при этом цель состоит в уменьшении для транзакционных систем конкуренции на уровне блока, посколь­ку такие системы выбирают из блока всего несколько строк и поэтому не стоит предоставлять в их распоряжение больше данных, чем требуется. Это ни в коем случае не означает, что большие размеры блоков непригодны для гибридных сис­тем, пока для релевантных объектов проактивно сконфигурированы параметры 

initransmfreelists.JXeno 

в том, что конкуренцией на уровне блока нужно сознатель­но управлять, а конфигурирование больших размеров блока базы данных Oracle не вызывает конкуренции на уровне блока. Еще заслуживает внимания тот фак­тор, что очень немного баз данных действительно транзакционны по своей при­роде. Большинство баз данных гибридны и поддерживают смешанные модели
ввода/вывода в форме записи (при транзакциях) и чтения (при создании отче­тов). При условии, что аспект чтения важен так же, как и аспект записи, конфигу­рирование размера блока базы данных Oracle должно проводиться с учетом обоих аспектов. Приложения, которые интенсивно используют операции чте­ния или с ярко выраженной отчетной направленностью (примером могут слу­жить приложения систем принятия решений или хранилищ данных),
необходимо конфигурировать, применяя максимально допустимые размеры бло­ков, поддерживаемые установленной у пользователя версией Oracle.
Замечание
Возможно, что пакетированные приложения от третьих фирм из сферы планирования ресурсов предприятия (ERP) могут иметь такую же интенсивность чтения, что и приложения для хранилищ данных. Конечно, это зависит от времени дня, недели, месяца.


Очень важно
На основании современных значений по умолчанию размеров блока файловой системы для продвинутых файловых систем (таких, KaKxfs, jfs, efs, vxfs) не рекомендуется создавать базу данных (вне зависимости от ее модели ввода/вывода), имеющую размер блока Oracle меньше 8 Кбайт. Большинство гибридных транзакционных систем хорошо работают при размере блока 8 Кбайт, но для некоторых систем могут понадобиться большие размеры блока, которые зависят от количества, природы и частоты их модели обращения при чтении.
Формула задания размера
При задании размера блока базы данных Oracle возникает много
требующих серьезного обсуждения. Для конфигурирования многих систем, работающих в промышленном режиме, мы использовали        формулу:

DB BLOCK SIZE = Размер блока операционной системы (ОС) >= размер страницы ОС
Замечание
Если продвинутые файловые системы (типа xfs, jfs, efs, vxfs)
конфигурируются и реализуются для файлов данных Oracle, ' блок ОС перекрывается размером блока файловой системы (FS). В этом случае формула изменяется и принимает вид: DB_BLOCK_SIZE= размер блока FS >= размер страницы ОС.
• Размер блока базы данных Oracle всегда должен быть равен значению разме­ра блока операционной системы. Размер блока ОС можно определить, выпол­нив зависящую от платформы или от применяемой файловой системы команду для каждой из применяемых операционных систем. В некоторых случаях мож­но изучить документацию для используемой операционной системы или доку­ментацию программы Управление томами (VolumeManager), полученную от ее поставщика. Если имеется операционная система Windows NT, для получения дальнейшей информации следует обратиться к системной документации. Это делается для уверенности, что когда Oracle потребуется прочесть с диска один блок базы данных, операционная система не выполнит физический вод больший или меньший по объему, чем размер блока Oracle. Поговорим об этом подробнее.
Если создается продвинутая файловая система с размером блока 8 Кбайт и создается база данных с размером блока 4 Кбайт, каждый запрос Oracle про­честь один блок данных приведет к тому, что ОС прочтет 8 Кбайт полезных дан­ных (несмотря на то, что запрошено было всего 4 Кбайта). Так случится потому, что нижним уровнем является размер блока файловой системы, который и ис­пользуется в качестве фактора блокирования при чтении/записи данных из
файла. Конфигурирование размера блока Oracle равным 4 Кбайт, если размер
блока ОС составляет 8 Кбайт, означает, что подсистеме        гарантированно наносится ущерб, так как при каждом запросе блока будет считан еще
один абсолютно ненужный блок Oracle. Другими словами, в приведенной выше
конфигурации при запросе на чтение одного блока мы теряем 50% емкости под-
системы        только потому, что размер блока базы данных меньше,
чем размер блока ОС или FS. В противоположной ситуации (размер блока базы
данных Oracle равен 8        а размер блока FS равен 4        для
ОС система ввода/вывода случайным образом запускает алгоритм упреждаю­щего чтения, исходя из неверного предположения, что приложение выполняет последовательное сканирование.
Но какое отношение ко всему этому имеет размер страницы ОС? Этот фак­тор обычно релевантен только для тех систем, где невозможно прикрепление или блокировка SGA Oracle. (Сам факт прикрепления или блокировки в памяти SGA указывает алгоритму страничной подкачки ОС игнорировать сегменты коллективной памяти, распределенные для SGA Oracle, пока система испытыва­ет крайние уровни зависания памяти).
Размер страницы является единицей ввода/вывода, используемой алгорит-
мом страничной подкачки для считывания (page-in) и выталкивания (page-out)
страниц в (из) оперативной памяти. Когда происходит выталкивание страни-
цы, ее содержимое записывается на диск в файлы свопинга операционной сис-
темы. Это снова означает физический ввод/вывод. Частота подкачки страниц
связана с количеством доступной свободной памяти и объемом запросов на па-
мять, которые должны быть обслужены для различных процессов в системе.
При условии, что подкачка является основной функцией ОС и что Oracle SGA
располагается в памяти (в границах блока DB_BLOCK_SIZE), очень важно убе-
диться, что нет дополнительных накладных расходов (аналогично взаимосвязи
между        и размерами блоков ОС или FS) при выполнении под-
качки для одной или нескольких страниц SGA Oracle. Размер страницы обычно
зависит от системы, а значения по умолчанию для большинства систем адекват­ны. Для системы Solaris размер страницы можно определить, выполнив коман­ду pagesize. Те же команды обычно бывают доступны для большинства
платформ ОС.
Подведем итоги. Начнем с размера страницы ОС. Этот размер должен быть
меньше или равен размеру блока ОС (или FS). Размер блока ОС (или FS) должен
быть, в свою очередь, меньше или равен DBBLOCKSIZE. Из проведенной ра-
нее дискуссии становится очевидно, что с точки зрения ввода/вывода не имеет
смысла создавать файловую        с размером        меньшим, чем размер
страницы ОС. Неоправданно (с точки зрения ввода/вывода) и создание базы данных с размером блока базы данных, отличающимся от размера блока ОС.


Замечание
Обсуждение размера блока ОС тесно связано с дискуссией по
поводу размера блока базы данных Oracle. Для большинства систем UNIX значение по умолчанию размера блока ОС равно 512 байт и это обычно релевантно для файловых систем ufs. Как упоминалось ранее, в большинстве систем, использующих продвинутые файловые системы, значение по умолчанию размера блока файловой системы равно 8 Кбайт. Так что по всем практическим соображениям размер блока ОС должен быть равен 8 Кбайт (потому что он перекрывается размером блока FS). Если используются ufs, файловая система должна создаваться с размером блока по крайней мере равным 8 Кбайт. Размер по умолчанию страницы ОС для большинства систем сегодня не менее 4 Кбайт, поэтому 8 Кбайт становится стандартом для новой архитектуры.
 


таблетки для похудения







jAntivirus