НАСТРОЙКА БАЗЫ ДАННЫХ И ИНСТАНЦИИ






        ----------------------------------------------------------------



                                   ЧАСТЬ VII


                       НАСТРОЙКА БАЗЫ ДАННЫХ И ИНСТАНЦИИ

ГЛАВА 20

        ----------------------------------------------------------------

        ПОНИМАНИЕ ПРОЦЕССА НАСТРОЙКИ



        ORACLE - это сложный и высоконастраиваемый программный  продукт.
        Его гибкость позволяет  вам влиять на  производительность, внося
        небольшие  настроечные  изменения.   Путем  настройки  ORACLE вы
        можете   приспособить   его   на   лучшее   удовлетворение ваших
        потребностей.

        В этой  главе вы  установите ваши  цели для  процесса настройки.
        Определив эти цели, вы сможете легче выбирать способы настройки,
        которые принесут вам наибольшие преимущества.

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

        Эта  глава  также  предоставляет  некоторые  из  наиболее важных
        отдельных  советов,  которые  должны  учитываться  при настройке
        ORACLE.  Эти советы проясняют процесс настройки.






























                                      Понимание процесса настройки  20-1


----------------

Установление целей настройки

        Прежде чем начинать настройку ORACLE, вы должны установить  цели
        этой  настройки.   Эти  цели  должны вытекать непосредственно из
        причин, побуждающих  вас к  настройке, и  должны основываться на
        производственных  требованиях,   ради  которых   вы  используете
        ORACLE.   Например,  целью  вашей  настройки  ORACLE  может быть
        обеспечение  высокой  пропускной  способности  приложения  ввода
        заказов в пиковые часы рабочего дня.

        Ваши цели для настройки могут быть следующими:

            *  улучшить производительность  предложений SQL  конкретного
               типа

            *  улучшить  производительность  конкретных  приложений базы
               данных

            *  улучшить  общую   производительность  всех   одновременно
               работающих пользователей и приложений базы данных

        Постоянно  имейте  в  виду  ваши  цели  по  мере  того,  как  вы
        рассматриваете каждый из факторов настройки в этом  руководстве.
        Чтобы  решить,  задействовать  ли  конкретный  фактор, вы должны
        рассматривать выгоды, которые он приносит производительности,  в
        свете ваших целей.

        Имейте также в  виду, что ваши  цели могут конфликтовать  друг с
        другом.  Например,  для достижения  наилучшей производительности
        конкретного  типа  предложений  SQL  вам,  быть  может, придется
        пожертвовать производительностью  других типов  предложений SQL,
        одновременно выполняющихся в вашей базе данных.


----------------

Шаги процесса настройки

        Процесс настройки  ORACLE состоит  из трех  шагов.  Каждому шагу
        посвящена соответствующая глава этого руководства:

        Первый шаг      Глава 21 "Настройка распределения памяти"

        Второй шаг      Глава 22 "Настройка ввода-вывода"

        Третий шаг      Глава 23 "Настройка соперничества"

        Эти  шаги  спроектированы  с  возможно  большей  модульностью  и
        независимостью.     Например,    преимущества    от    настройки
        ввода-вывода на Втором  шаге отделены от  преимуществ устранения
        соперничества на Третьем шаге.

        Однако  решения,  которые  вы  принимаете  на  одном шаге, могут
        повлиять  на  следующие  шаги.   Например,  дисковый ввод-вывод,
        который  настраивается  на  Втором  шаге,  зависит  от   размера
        буферного кэша, который настраивается на Первом шаге.  Те  шаги,
        которые имеют наибольшее  влияние как на  другие шаги, так  и на
        производительность  в  целом,  появляются  в этом методе раньше.
        Поэтому вы должны  следовать этим шагам  в том порядке,  в каком
        они представлены.

20-2  Руководство администратора


Перед тем, как начать процесс
-----------------------------

        Хорошая   производительность   начинается   с   хорошего проекта
        приложения и  эффективных предложений  SQL. Прежде  чем начинать
        процесс настройки  самого ORACLE,  вы должны  быть уверены,  что
        ваши  приложения   спроектированы  так,   чтобы  извлекать   все
        преимущества из возможностей ORACLE, и что ваши предложения  SQL
        написаны  так,  чтобы  они  наиболее  эффективно  обрабатывались
        ORACLE.  Рекомендации по проектированию приложений и составлению
        предложений SQL для лучшей производительности содержатся в главе
        1 "Разработчик приложений" и главе 5 "Настройка предложений SQL"
        документа   ORACLE7   Server   Application   Developer's  Guide.
        Обсудите эти рекомендации с разработчиками ваших приложений.

Первый шаг: Настройка распределения памяти
------------------------------------------

        Правильное  распределение  ресурсов  памяти  структурам   памяти
        ORACLE имеет большое  влияние на производительность.   На Первом
        шаге   вы   решите,   сколько   памяти   респределять  следующим
        структурам:

            *  областям SQL и PL/SQL
            *  кэшу словаря данных
            *  буферному кэшу

        Правильное  распределение  ресурсов  памяти  способно привести к
        следующим выгодам:

            *  улучшению производительности кэша
            *  сокращению разбора предложений SQL и блоков PL/SQL
            *  сокращению страничного обмена и свопинга


Второй шаг: Настройка ввода-вывода
----------------------------------

        Дисковый ввод-вывод  имеет тенденцию  снижать производительность
        многих программных приложений.  Однако ORACLE спроектирован так,
        что его производительность не обязательно должна  лимитироваться
        вводом-выводом.

        Настройка ввода-вывода включает следующие процедуры:

            *  распределение ввода-вывода, чтобы избежать соперничества
               за диски
            *  размещение данных в дисковых блоках для лучшего доступа
            *  манипулирование размерами экстентов для ваших данных


Третий шаг: Настройка соперничества
-----------------------------------

        Одновременная   работа   пользователей   ORACLE   может  создать
        конкуренцию за  ресурсы ORACLE.   Соперничество процессов  может
        привести к их ожиданию  освобождения ресурсов.  На Третьем  шаге
        вы уменьшите соперничество за:

            *  сегменты отката
            *  процессы в архитектуре многоканального сервера
            *  замки буфера журнала повторения

                                      Понимание процесса настройки  20-3


После завершения процесса
-------------------------

        Завершив Третий шаг, снова оцените производительность и  решите,
        требуется ли дальнейшая настройка.  Так как некоторые выигрыши в
        производительности, достигнутые  на более  поздних шагах,  могут
        проложить дорогу к дальнейшим улучшениям на более ранних  шагах,
        может оказаться полезным повторить весь цикл настройки.

        Вы   должны   также   рассмотреть   факторы   настройки, которые
        обсуждаются в главе 24 "Дополнительные соображения по настройке"
        этой книги.   Эти факторы  настраивают операции  ORACLE, которые
        снижают производительность в некоторых специальных случаях.


----------------

Основные советы по настройке

        Некоторые части процесса  настройки более важны,  чем остальные.
        Приведенный  ниже  перечень   выделяет  наиболее  важные   части
        настройки.   Этот  перечень  ни  в  какой  мере не претендует на
        исчерпывающую коллекцию всего материала, представленного в  этом
        руководстве.

        Обратите особое внимание на вопросы, поднимаемые в этом  списке.
        Если вы раньше не  занимались настройкой ORACLE, то  этот список
        покажет вам перспективу относительной важности различных  частей
        настроечного процесса.  Если вы уже знакомы с настройкой ORACLE,
        то  этот  список  адресует  вас  к  частям данного руководства и
        других документов ORACLE, в которых обсуждаются эти вопросы.

        1.  Правильно  индексируйте  таблицы.   Надлежащее использование
            индексов   может   увеличить   производительность  некоторых
            предложений  SQL  на  величины,  измеряемые  порядками.  Для
            информации  об  индексах  обратитесь  к  главе  5 "Настройка
            предложений  SQL"   документа  ORACLE7   Server  Application
            Developer's Guide.

        2.  Используйте стоимостную оптимизацию всюду, где это возможно.
            При  этом  подходе  оптимизатор  использует  статистику   по
            таблицам, индексам и кластерам, чтобы выбирать самый быстрый
            способ  исполнения  предложения  SQL.  Этот подход сокращает
            время  и  усилия,   необходимые  вам  для   настройки  ваших
            предложений  SQL.  Для  информации  о  том,  как   применять
            стоимостной  подход,   обратитесь  к   главе  5   "Настройка
            предложений  SQL"   документа  ORACLE7   Server  Application
            Developer's Guide.

        3.  Чтобы заставлять оптимизатор выбирать специфический путь для
            исполнения  предложения  SQL,  используйте  СОВЕТЫ,  которые
            имеют вид специальных комментариев внутри предложений.   Для
            информации  о  советах  обратитесь  к  главе  5   "Настройка
            предложений  SQL"   документа  ORACLE7   Server  Application
            Developer's Guide.








20-4  Руководство администратора


        4.  Пользуйтесь преимуществами  новых средств  ORACLE7.  Ввод  в
            действие  ограничений  целостности  обсуждается  в  главе  5
            "Поддержание  целостности  данных"  документа ORACLE7 Server
            Application   Developer's    Guide.    Хранимые    процедуры
            обсуждаются  в  главе  7  "Использование процедур и пакетов"
            документа  ORACLE7  Server  Application  Developer's  Guide.
            Разделяемые  области  SQL  и  PL/SQL  обсуждаются в главе 21
            "Настройка распределения памяти" данного руководства.

        5.  Сокращайте  время,  требуемое  для  разбора,  поддерживая  в
            основной  памяти  часто   используемые  предложения  SQL   и
            хранимые процедуры, разобранные после их выполнения, а также
            информацию словаря  данных.  Эти  факторы производительности
            обсуждаются  в  главе  21  "Настройка  распределения памяти"
            данного руководства.

        6.  Если  имеет  место  избыточный  ввод-вывод  блоков   данных,
            увеличьте размер буферного кэша в глобальной области системы
            (SGA).  Для информации о настройке размеров структур  памяти
            ORACLE  обратитесь  к  главе  21  "Настройка   распределения
            памяти" данного руководства.

        7.  В  операционных  системах  с  виртуальной  памятью, умещайте
            глобальную область системы (SGA) целиком в реальной  памяти,
            чтобы гарантировать быстрый доступ к кэшируемым данным.  Для
            информации  о  распределении  памяти  обратитесь  к главе 21
            "Настройка распределения памяти" данного руководства.

        8.  Распределяйте  ввод-вывод  так,  чтобы  ни  один  из дисков,
            содержащих ваши файлы данных и файлы журнала повторения,  не
            был близок к  переполнению.  Для информации  о распределении
            ввода-вывода обратитесь к главе 22 "Настройка  ввода-вывода"
            данного руководства.

        9.  Уменьшите  соперничество  за  замки,  если  процент запросов
            замков,  приводящих  к  ожиданию,  значительно превышает 1%.
            Методы  мониторинга  и  сокращения  соперничества  за  замки
            обсуждаются  в  главе  23  "Настройка соперничества" данного
            руководства.

        10. Обеспечьте, чтобы все процессы ORACLE, как переднего  плана,
            так  и  фоновые,  имели  одинаковый  приоритет  обработки  в
            операционной  системе.   Вытеснение  операционной   системой
            через  механизм  свопинга  низкоприоритетного процесса может
            привести к проблемам  производительности, если этот  процесс
            имеет  монопольный  доступ  к  ресурсу.   Высокоприоритетный
            процесс, запрашивающий этот  ресурс, может бесконечно  долго
            ждать, пока низкоприоритетный  процесс получит управление  и
            освободит ресурс.   Для информации  о проблемах,  вызываемых
            соперничеством,   обратитесь    к   главе    23   "Настройка
            соперничества" данного руководства.