DeepEdit!

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

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

Изменение размера блока базы данных, основные вопросы


Единственный способ изменить размер блока базы данных - это выполнить полный экспорт всей базы данных, остановить базу данных, удалить все связан­ные с базой данных файлы, а затем заново, с пустого места, повторно создать ба­зу данных, используя при этом в init.ora желаемый размер блока базы данных (конфигурируя соответствующим образом DB_BLOCK_SIZE). Это проясняет сказанную ранее фразу: "Размер блока базы данных не может быть изменен на
протяжении всей ее жизни". Единственный способ преобразовать размер блока
базы данных Oracle может оказаться невыполнимым или вообще невозможным для большинства сред по следующим причинам:
•        Время, необходимое для выполнения полного экспорта базы данных, может оказаться слишком большим даже в том случае, когда при выполнении экспорта используется атрибут 

direct.

•        Чистый размер базы данных может сделатытолный экспорт
теоретической мечтой.
Даже если удастся провести экспорт, импорт является еще более медленным компонентом этого процесса.
Даже если база данных относительно мала, мы можем не располагать достаточным технологическим окном (разрешенным временем простоя системы) для выполнения этой процедуры.
Так что давайте смотреть на вещи здраво: у нас есть только один выстрел, и
если он окажется неудачным, приложения и база данных будут расплачиваться
за это потерями производительности на протяжении всей своей жизни. Конеч-
но, в        все это изменилось.
Малые размеры блоков против больших: интересные перспективы
ЭйалАронофф в своей статье (Eyal Aronoff. "Oracle Database Block Size") срав-
нивает характеристики производительности баз данных Oracle при размерах
блоков 2 Кбайт и 8 Кбайт. Представляют интерес значения производительно­сти, собранные во время его экспериментов с чтением одного блока данных.
В приведенной ниже таблице дается краткий обзор таких значений.

Описание
Размер блока 2 Кбайта
Размер блока 8 Кбайт

Число строк в таблице Число запросов на чтение
150000
14100
150000
3400

Время, затрачиваемое на чтение блока
Полное затраченное время
мс

268 с
20 мс

При взгляде на цифры для времени чтения одного блока разница не пред-
ставляется сколько-нибудь существенной (1 мс). Но обратите внимание, что
число запросов чтения для базы данных с блоком размера 8 Кбайт сократилось
на        Это также очень важно для итеративных сканирований одиночных бло-
ков индекса, так как в одном блоке Oracle будет храниться больше элементов ин-
декса,        размер индекса и число запросов чтения для чтения
блоков индекса.
Наряду с фактом, что размер блока базы данных Oracle увеличился четырех­кратно (от 2 Кбайт до 8 Кбайт), следует иметь в виду уменьшение запросов на чтение на 75%. Однако, если приложения будут непрерывно запрашивать чте­ние одного блока с диска, эта разница в 1 мс будет накапливаться в течение длинных прогонов и складываться в ощутимые цифры. В этом случае, возмож­но, что итеративная модель чтения одиночных блоков с диска может привнести в систему ввода/вывода больше нагрузки, чем необходимо. В основном Oracle дает больше запросов на ввод/вывод, чем могло быть при использовании боль­ших размеров блока.
Замечание
Основываясь на данных о производительности из статьи Эйала Ароноффа и нашем опыте, мы нашли, что размер блока базы данных имеет меньшее влияние на производительность при чтении мультиблоков (последовательные чтения), если параметр ОВ_Р1ЬЕ_ми^1ВШСК_ЯЕАО_СОиМТустановлен таким образом, что (DB_BLOCK_SIZE * DB_FILE_MULTIBLOCK_READ_COUNT) = размер- фрагмента ввода/вывода операционной системы. Размер-фрагмента ввода/вывода операционной системы является конфигурируемым на многих платформах (см. главу "Настройка ввода/вывода"). Очень важно
Воздержитесь от установки
DB_FILE_MULTIBLOCK_READ_COUNT на очень большие значения (32 или выше), так как оптимизатор Oracle может сделать вывод, что полное сканирование таблицы является дешевой операцией. Вы определенно не хотите, чтобы оптимизатор зациклился на полном сканировании таблицы. Тут нетрудно и ошибиться.

Итоги
Важно соответствующим образ9м конфигурировать размер блока базы дан­ных Oracle, поскольку он влияет на общую производительность базы данных.
Помните, у нас имеется только один выстрел. Если возникли сомнения, выбери-
те большее значение размера блока, но при этом убедитесь, что вслед за увели-
чением размера блока в порядке упреждения увеличиваются и все релевантные
параметры уровня блока, отвечающие за управление конкуренцией. С другой
точки зрения, производительность ввода/вывода приложения сводится к час-
тоте и эффективности чтения блоков с диска. Эффективность чтения блоков
измеряется количеством данных, сделавшихся доступными приложению после
считывания одного блока из        Oracle.
 


Элитная недвижимость жк шоколад - интерьер здесь. Большой выбор недвижимости.







jAntivirus