Мониторинг и настройка производительности
Оценить
(0 голоса)
Этот шаг является важным для того, чтобы позволить оптимизатору распознавать отклонение данных. Проанализируйте все столбцы таблицы, к которым, вероятно, будут обращены запросы, но не столбцы комментариев или описаний, если только вы не знаете точно, что к ним будут обращены запросы. Команды анализа таблиц БД демонстрируются в следующих примерах: analyze table item compute statistics; analyze table stock estimate statistics sample 15000 rows; Второй пример иллюстрирует команду, предназначенную для анализа очень больших таблиц, в которых можно ожидать распределения данных в некотором подмножестве таблицы, что и будет представлять полное распределение данных. Обратите внимание на то, что пакет DBMS_STATS также может использоваться для сбора…
Оценить
(0 голоса)
Создание индексов можно значительно ускорить, если делать это после загрузки таблиц, а не в процессе их загрузки. Создание индексов также происходит на l0/t-\5% быстрее после того, как таблицы были проанализированы. Опускайте индексы перед загрузкой для гарантии, что их создание не будет выполняться в процессе загрузки. Используйте при создании индексов опцию параллельности, если доступно несколько ЦП. Например: create index custname_idx on customer (cust_name) parallel (degree 8); Анализ индексов Заключительным этапом является выполнение анализа индекса в пользу оптимизатора БД. Далее представлены примеры команды analyze index. analyze index w_idx compute statistics; analyze index d_idx compute statistics; analyze index custname_idx estimate statistics sample 2…
Оценить
(0 голоса)
Первичный ключ таблицы обычно имеет связанный с ним индекс. Кроме того, принятие решения о том, когда следует создавать индекс, не всегда является простой задачей. Вот некоторые общие рекомендации: •             Если от полпроцента до 2% или большее количество данных в некоторой таблице будет извлечено в результате предиката запроса, то сканирование таблицы будет выполняться быстрее, чем извлечение данных из основной таблицы по индексу. Таким образом в этом случае можно получить преимущество от отсутствия индекса, поскольку оптимизатор часто будет выбирать использование индекса, если таковой существует. •             Если известно к каким столбцам в таблице обычно происходит обращение, рассмотрите вариант сцепленного индекса для того, чтобы…
Оценить
(1 голос)
Некоторые приложения нуждаются во всей разделяемой памяти, которую они могут получить, особенно в высокопроизводительных средах, где дополнительная память в буферном кэше может обеспечить значительное повышение производительности. Однако для 32-разрядных версий СУБД Oracle необходимо будет изменить базовый адрес сегмента (параметр sgabeg) разделяемой памяти и перекомпоновать двоичный файл oracle с кодом программы прежде, чем можно будет воспользоваться SGA размером более 2 Гбайт. Этот метод несколько меняется для различных версий Oracle; данная процедура для Огас1е8 и более поздних выпусков описана в настоящем разделе. Стандартная программа oracle поставляется с базовым адресом сегмента (sgabeg = 0x80000000), который позволяет использовать немногим менее 2 Гбайт разделяемой памяти…
Оценить
(0 голоса)
Поддержка DR (Dynamic Reconfiguration - динамической реконфигурации) в операционной системе Solaris и на аппаратных средствах фирмы Sun описывается в разделе "Динамическая реконфигурация" главы 3; там же обсуждается применение этой технологии для БД. Динамическая SGA в 0racle9i Динамическая SGA (System Global Area - системная глобальная область), появившаяся в Oracle9i, впервые предлагает возможность изменения размера области SGA в период "жизни" БД. В частности, Oracle9i поддерживает изменения размеров буферного кэша и пула совместного использования, двух главных компонентов системной глобальной области памяти. Когда для области SGA используется ISM (intimate Shared Memory - единообразно объявленная память совместного использования, то есть, заказанная через единую для процессов…
Оценить
(0 голоса)
Если значение параметра sga_max_size установлено большим, чем суммарное значению параметров db_cache_size, shared_pool_size и других более мелких компонентов SGA, применяемых СУБД, то Oracle9i автоматически использует DISM. В этом случае объем первоначально заблокированной памяти будет равен суммарному значению параметров db_cache_size, shared_pool_size плюс другие компоненты SGA. Если позднее размеры буферного кэша или пула совместного использования будут изменены, СУБД Oracle либо заблокирует дополнительную память, либо разблокирует и освободит существующую память, в зависимости оттого, приводит ли данное изменение к увеличению или к уменьшению размера памяти. СУБД Oracle также делает доступным образец сценария RCM (Reconfiguration Coordination Manager - менеджера по координации реконфигурации, или менеджера, координирующего реконфигурации)…
Оценить
(0 голоса)
Если модуль основной памяти должен быть удален (исключен) с работающей системы, то может быть предпринята операция динамической реконфигурации. Однако событие DR (Dynamic Reconfiguration - динамической реконфигурации) может потерпеть неудачу, например, если заблокированная оперативная память не может быть перемещена на другие системные платы. Следовательно, бывают случаи, когда единственной альтернативой изменению размеров динамической области SGA является отсоединение всех пользователей от БД, ее закрытие, изменение размера SGA, перезапуск БД и повторное подключение пользователей. Уровень готовности прикладных программ очевидно нельзя считать адекватным, если не будет обеспечена должная гибкость в изменении размеров сегментов памяти SGA. По этой причине Oracle9i -это существенный прорыв в области обеспечения…
Оценить
(0 голоса)
При выполнении конфигурирования СУБД Oracle целесообразно принимать во внимание не только производительность, но и время восстановления. В настоящем разделе основное внимание будет сосредоточено на восстановлении системы после-аварии, нежели на восстановлении БД и выполнении отката после отказа носителей информации. Восстановление системы после аварии случается не часто, но когда это все-таки произойдет, вы вероятно оцените те подготовительные действия, которые были предприняты с целью сокращения времени восстановления системы. В настоящем разделе будут проанализированы настройки Oracle, касающиеся контрольных точек и восстановления, а также рассмотрен вопрос компромиссного выбора между временем восстановления и производительностью. Контрольные точки кратко описаны в разделе "Очистители страниц" главы 5, а восстановление…
Оценить
(0 голоса)
На время восстановления значительное влияние оказывает частота контрольных точек. Контрольные точки Oracle запускаются в том случае, когда происходит одно из следующих событий: •             Действующий журнал отката заполняется, что вызывает переключение журналов. •             Истекает (завершается) интервал контрольных точек. •             Администратор БД вручную запрашивает контрольную точку (alter system checkpoint) или переключает журнал отката (alter system switch logf ile). Восстановление осуществляется быстрее всего в том случае, когда авария системы происходит сразу же после контрольной точки, поскольку все измененные страницы были выгружены на диск. Чем продолжительнее интервал времени между контрольной точкой и аварией системы, тем больше работы потребуется выполнить для восстановления БД. Но СУБД…
Оценить
(0 голоса)
Частота размещения контрольных точек затрагивает не только время восстановления, но и производительность системы. В таблице 22-1 представлены результаты ряда испытаний, в которых измерялись производительность и время восстановления при различных интервалах между контрольными точками. Термин "интервал между контрольными точками" в данном случае следует понимать как период времени между началом успешных контрольных точек. Контрольные точки были инициированы вручную с помощью команды alter Bystem checkpoint как eysdba. •             Производительность транзакций для данной рабочей нагрузки повышается по мере увеличения интервала между контрольными точками. Производительность увеличивается на 27%, если контрольные точки встречаются только каждые 900 секунд вместо каждых 150 секунд. Дальнейшее увеличение времени между контрольными…