ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.






             7-1   Инструкция по настройке СУБД ОРАКЛ

ГЛАВА 7.      ВЫПОЛНЕНИЕ ТЕСТОВЫХ ПРОГРАММ.
              ----------------------------Д

Первым средством для наблюдения выполнения СУБД ОРАКЛ является SQL*DBA. Экраны
SQL*DBA MONITOR описаны в приложении В "Замечания по SQL*DBA" Руководства
администратора базы данных ОРАКЛ.

Дополнительные тестовые средства описаны в этой главе. Эти средства и экраны
SQL*DBA MONITOR могут помочь вам наблюдать и настраивать приложения, которые
вызывают СУБД.  Тестовые средства, описанные в этой главе:

- SQL трассировка
- EXPLAIN PLAN (EP) оператор

Вывод EP оператора зависит от ОРАКЛа оптимизатора. Посколько ОРАКЛ оптимизатор
является объектом, изменяющимся от версии к версии СУБД ОРАКЛ, вывод EP
оператора будет развиваться. В будущих версиях вывод может существенно
отличаться от текущей версии. Точно также SQL трассировка и TKPROF-программа
являются объектами значительно меняющимися в будущих версиях ОРАКЛа. Эти
изменения будут отражены в документах для пользователей.

        SQL ТРАССИРОВКА.
        ----------------
SQL трассировка предоставляет информацию о выполнении отдельных SQL операторов.
SQL трассировка вырабатывает следующую статистику для каждого оператора:
- счетчики анализа, выполнения и выборки
- время работы CPU и время выполнения задачи
- физические и логические чтения
- количество обрабатываемых записей

Вы можете разрешить SQL трассировку для одного сеанса или для одного
экземпляра. Когда SQL трассировка разрешена, сбор статистики для всех SQL
операторов выполняется в сеансе пользователя или в эземпляре, расположенном в
трассировочном файле. Чтобы перевести трассировочный файл в форму, удобную для
чтения, вы можете запустить TKPROF-программу.

Как вариант, TKPROF также показывает план выполнения оператора. Вы можете это
задать при помощи аргумента EXPLAIN в командной строке TKPROF. Синтаксис
TKPROF- команды описан в разделе "Выполнение TKPROF" в этой главе. Для дополни
тельной информации по оператору EP обратитесь к разделу "EP оператор" в этой
главе.  Поскольку работа SQL трассировки увеличивает перегрузку сиситемы, вам
следует разрешать ее во время исследования ваших SQL операторов и запрещать,
когда вы это закончили.
Для использования SQLтрассировки выполните следующие шаги:

1.Установите INIT.ORA параметры, чтобы подготовить ОРАКЛ для использования SQL
  трассировки.
2.Выполните приложения с разрешенной трассировкой для сеанса или экземпляра.
3.Используйте TKPROF для получения статистики в форме, удобной для чтения.

Каждый из этих шагов обсуждается детально ниже.

        Установка INIT.ORA параметров для SQL трассировки.
        --------------------------------------------------
Перед выполнением приложений с разрешенной SQL трассировкой
стартуйте ОРАКЛ со следующими INIT.ORA параметрами:

                                    -- 77 --



- TIMED_STATISTICS = TRUE
  ЭТО разрешает временные замеры, предоставляемые SQL трассировкой, такие как
  время работы CPU и время выполнения задачи. Разрешение TIMED_STATISTICS
  приводит к дополнительным временным вызовам операций низкого уровня. Этот
  параметр также позволяет сбор соответствующей статистики на SQL*DBA MONITOR
  экране.

- MAX_DUMP_FILE_SIZE = n
  Вам следует задать максимальное количество блоков операционной системы для
  размещения вывода трассировки. Если вы обнаружите, что ваш вывод усечен,
  увеличьте количество блоков, определенных этим параметром и запустите
  трассировку снова.

- USER_DUMP_DEST = directory
  Файл трассировки записывается вкаталог для сиситемного сброса, заданного по
  умолчанию. Если вы хотите изменить это значение, обратитесь к Руководству по
  установке и использованию (Installation and user's Guide) для правильного
  задания другого каталога.

Разрешенин трассировки для сеанса.
----------------------------------
Для разрешения трассировки для отдельного сеанса выполните SQL оператор:

ALTER SESSION SET SQL_TRACE TRUE

Чтобы отключить SQL трассировку, выполните SQL оператор:

ALTER SESSION SET SQL_TRACE FALSE

SQL трассировка отключается автоматически, когда ваше приложение не связано с
ОРАКЛом.
Вам может понадобиться изменить ваше приложение, чтобы включить ALTER SESSION
оператор. Например, чтобы выполнить ALTER SESION команду в SQL*Forms версии
3.0, вызовите SQL*Forms,используя s-опцию или вызовите SQL*Forms(Design),
используя опцию статистики.  Для дополнительной информации по SQL*Forms
обратитесь к Справочнику по пректированию SQL*Forms (SQL*FOrms Designer's
Reference).

        Разрешение трассировки для экземпляра.
        --------------------------------------
Чтобы разрешить SQL трассировку для всех пользователей ОРАКЛа, установите
величину INIT.ORA параметра SQL_TRACE = TRUE. Это разрешит сбор статистики для
всех сеансов пользователя. Однако можно запретить трассировку для одного
сеанса, выполнив в этом сеансе SQL оператор:

ALTER SESSION SET SQL_TRACE FALCE

Когда SQL трассировка разрешена для всего экземпляра, ОРАКЛ создает
трассировочные файлы каждый раз, когда пользователь начинает и заканчивает
работу. Перед запуском TKPROF вы, возможно, захотите добавить все
трассировочные файлв в выходной файл.

Примечание: Первые несколько трассировочных файлов создаются после старта базы
данных и содержат данные, которые отражают работу стартовых процессов. В
особенности,они содержат статистику, которая отражает суммарную работу I/O и
отражает каким образом заполняются различные КЭШи базы данных. Эти первые
несколько файлов могут игнорироваться.


                                    -- 78 --



        SQL трассировочные файлы и файлы версий.
        ----------------------------------------
Когда вы разрешаете трассировку экземпляра, ОРАКЛ записывает записывает
трассировочный файл каждый раз, когда пользователь начинает работу или
заканчивает. Обратитесь к Руководству по установке и использованию для
информации как назвать трассировочные файлы и работать с ними в вашей
операционной системе. Если ваша операционная система сохраняет много версий
файлов, убедитесь, что лимит версий достаточен по величине для общего числа
трассировочных файлов, получаемых при SQL трассировке. Вероятно ОРАКЛ создаст
много трассировочных файлов и вам следует знать как их различить в каталоге
"user dump".

        Запуск TKPROF.
        --------------
TKPROF переводит трассировочный файл, полученный при SQL трассировке в формат
для чтения. TKPROF может также быть использован для получения вывода EP
оператора. Вызовите TKPROF следующим образом:

TKPROF tracefile outputfile
  [SORT = {sortoption і (sortoption[,sortoption...])}] [PRINT = n]
  [EXPLAIN = username/password]

Оперативная помощь высвечивается, если вы вызываете TKPROF без аргументов
командной строки. Далее представлены аргументы, которые вы можете использовать
при вызове TKPROF. Обратитесь к разделу "Пример TKPROF", чтобы узнать как
задать эти аргументы.

tracefile   Этот аргумент является именем файла, в который будет
            записываться SQL статистика после разрешения трассировки

outline     Этот аргумент является именем файла, в который TKPROF
            будет записывать свой вывод.

SORT        Эта опция приводит к тому, что статистика в выходнм файле
            представляется в сортированном виде. Если определена более, чем
            одна сортировочная опция, выход будет сортироваться в восходящем
            порядке по сумме величин, определенных в сортировочных опциях.
            Например, если заданы EXECPU и EXEELA, тогда SQL операторы
            сортируются по сумме времени CPU и elaped time, затраченного на
            выполнение. Сортировочные опции такие:

PRSCNT      Сколько раз выполняется синтаксический разбор (парсинг).
PPSCPU      Время процессора, затраченное на парсинг.
PRSELA      Время задачи, затраченное на парсинг.
PRSPHR      Количество физических чтений во время парсинга
PRSCP       Номер блока последовательного типа, читаемого во время парсинга.
PRSCU       Номер текущего блока, читаемого во время парсинга.

EXECNT      Количество выполнений.
EXECPU      Время процессора, затраченное на выполнение.
EXEELA      Время счета, затраченное на выполнение.
EXEPHR      Количество физических чтений во время выполнения.
EXECR       Номер блока последовательного типа, читаемого при выполнении.
EXECU       Номер текущего блока, читаемого при выполнении.
EXEROW      Количество записей, обработанных во время выполнения.




                                    -- 79 --



FCHCNT      Количество выборок.
FCHCPU      Время процессора, затраченное на выборку.
FCHELA      Время решения, затраченное на выборку.
FCHPHR      Количество физических чтений во время выборки.
FCHCR       Номер блока последовательного типа, читаемого во время выборки.
FCHCU       Номер текущего блока, читаемого во время выборки.
FCHROW      Количество выбираемых записей.

PRINT = n   Этот тип аргумента приводит к тому, что первые n(целых)
            сортированных SQL операторов, которые были проанализированы в
            сеансе трассировки или экземпляре ОРАКЛ, печатаются в выходной
            файл.

EXPLAIN=    Этот тип аргумента заставляет TKPROF выполнять EP
username/   оператор для всех SQL операторов в файле трассировки.
password    EP оператор выдает план выполнения SQL операторов. EP журналы, для
            которых вы задаете в этом аргументе параметр username/password,
            создают таблицу PLAN_TABLE и стирают ее, когда заканчивают
            выполнение. Для информации по EP оператору смотри раздел "EP
            оператор" в этой главе. Пользовательский процесс должен иметь
            привелегию RESOURCE, чтобы использовать аргумент EXPLAIN в TKPROF.

        Пример TKPROF.
        --------------
Следующий пример покажет вам как вы можете запустить TKPROF в операционной
системе VMS:

TKPROF SQLDBA_JRL_005.TRC R1.PRF SORT=(EXECPU,FCHCPU) EXPLAIN=SCOTT/ TIGER

В этом примере файл трассировки, записываемый при SQL трассировке, называется
SQLDBA_JRL_005.TRC. TKPROF. Он создает статистику для каждого оператора
трассировки. Статистика сортируется в выходном файле R1.PRF по сумме времени
процессора, затраченного на выполнение и времени процессора, затраченного на
выборку записи. Все операторы файла трассировки и план выполнения для каждого
оператора печатаются в R1.PRF.

Вывод TKPROF.
-------------
Далее показан вывод TKPROF для SQL оператора, который появился в выходном
файле. TKPROF был вызван опцией EXPLAIN при помощи командной строки:

SELECT * FROM EMP. DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO

          count    cpu    elap    phys    cr    cur    rows
------------------------------------------------------------------
Parse:              1     88      98       3    37      0
Execute:            1      5      12       2     2      2       0
Fetch:              1     10      18       2     2      2      14

Execution plan:
MERGE JOIN
    SORT JOIN
      TABLE ACCESS (FULL) OF 'DEPT'
    SORT JOIN
      TABLE ACCESS (FULL) OF 'EMP'




                                    -- 80 --



Здесь показаны:оператор SELECT, который былтрассирован, далее его
трассировочная статистика, далее план выполнения, вызванный по EXPLAIN. Для
дополнительной информации по плану выполнения смотри "Пример EP вывода" в этой
главе.

        SQL трассировочная статистика.
        ------------------------------
Записи вывода SQL трассировки относятся к следующим шагам SQL оператора:
parse(анализ),execute(выполнение),fetch(выборка).

Parse     Этот шаг транслирует SQL оператор в план выполнения.  Этот шаг
          включает проверку правильности написания и проверку наличия таблиц,
          имен полей и других ссылочных объектов.

Execute   Этот шаг трассирует запущенные операторы в СУБД.
Fetch     Этот шаг выбирает записи, которые удовлетворяют запросу.

Далее следуют поля SQl трассировочного вывода:
count     Количество раз анализа или выполнения или выборки SQL оператора,
          чтобы выполнить операцию. При каждом вызове выборки может быть
          прочитано много блоков данных.

cpu       Значение в этом поле является временем процессора,требую- щимся для
          каждого шага исполнения,анализа исполнения или выборки. Эта величина
          выражается в сотых долях секунды.

elap      Величина в этом поле является суммарным временем выполнения, требую
          щимся для каждого шага. Эта величина выражается в сотых долях
          секунды.

phys      Величина в этом поле является количеством блоков данных, считываемых
          из файлов безы данных на диске для каждого шага.

cr        Количество буферов, выбираемых в последовательном виде.  Буфер
          выбирается в последовательном виде, когда необходимо чтение
          последовательной версии буфера.

cur       Количество буферов, выбираемых в текущем виде. Буфер выбирается в
          текущем виде, когда необходима самая последняя версия буфера. Сумма
          последовательных и текущих чтений равна суммарному количеству блоков
          данных, которые были запрошены.

rows      Суммарное количество записей, обработанных SQL оператором (не включая
          записи, которые были обработаны подзапросами SQL операторов). Для
          операторов SELECT количество записей появляется в шаге fetch. Для
          операторов UPDATE и DELETE количество обрабатываемых записей
          появляется в шаге execute.

Примечание: Временная статистика выражается в сотых долях секунды.  Это
означает, что некоторые операции не могут быть замерены точно.  Вам следует это
иметь ввиду интерпретируя эту статистику. Будьте особенно внимательны,
интерпретируя результаты для простых запросов, которые выполняются очень
быстро.

        Рекурсивные вызовы.
        -------------------
Для того, чтобы выполнить SQL оператор, ОРАКлу, возможно, потребуется
дополнительный SQL оператор или операторы. Такие операторы известны как

                                    -- 81 --



рекурсивные вызовы. Например, если вы пытаетесь вставить запись в таблицу,
которая не имеет достаточного пространства, ОРАКЛ выполняет рекурсивные вызовы,
чтобы выделить пространство динамически. Рекурсивные вызовы выполняются также,
когда информации словаря данных нет в КЭШе словаря данных и она должна быть
считана с диска.  Если рекурсивные вызовы происходят когда SQL трассировка
разрешена, TKPROF отображает статистику этих операторов в дополнение к
статистике операторов основной программы. Рекурсивная статистика помечается как
рекурсивные SQL операторы.

Заметьте, что время CPU, время выполнения программы, физические, непрерывные и
текущие чтения для рекурсивных SQL операторов включаются в статистику SQL
оператора, который вызвал рекурсивные выполнения. Добавляя такую статистику для
некоторых SQL операторов будьте осторожны, чтобы не удвоить значения статистики
из-за рекурсивных вызовов.

        ОПЕРАТОР EXPLAIN PLAN (EP).
        --------------------------Д

EP оператор показывает план выполнения, выбранный ОРАКЛом-оптимиза- тором для
операторов SELECT,UPDATE,INSERT и DELETE (DDL оператор сюда не вкючается). План
выполнения - это последовательность простых операций и порядок этих операций,
которые СУБД ОРАКЛ выполняет для выполнения SQL оператора. План выполнения
может помочь вам определить извлекает ли SQL оператор пользу от использования
индексов.

Для оперативной информации об EXPLAIN PLAN орераторе обратитесь к файлу
EXPLAIN.DOC далее.

        Создание выходной таблицы EXPLAIN PLAN.
        ---------------------------------------
Перед вызовом EP оператора вы должны создать таблицу базы данных для хранения
его вывода. Чтобы открыть эту таблицу, SQL текст, называемый XPLAINPL.SQL,
создается на вашем дистрибутивном носителе в том же каталоге CATALOG.SQL. Для
получения дополнительной информации операционной системы по расположению
CATALOG.SQL обратитесь к Руководству по установке и использованию. Чтобы
выполнить XPLAINPL.SQL, введите следующее выражение либо в SQL*Plus либо в
SQL*DBA:

SQL> @XPLAINPL.SQL

Вы можете также создать свою таблицу, используя для нее свое имя. Вы можете
направить вывод оператора EP в эту таблицу, используя выражение INTO, описанные
далее в этом разделе.

Любая таблица, используемая для хранения вывода EP оператора, должна иметь те
же названия полей и типы данных, как в PLAN_TABLE:

CREATE TABLE PLAN_TABLE  (

    STATEMENT_ID          CHAR(30),
    TIMESTAMP             DATE,
    REMARKS               CHAR(80),
    OPERATION             CHAR(30),
    OPTIONS               CHAR(30),
    OBJECT_NODE           CHAR(30),
    OBJECT_OWNER          CHAR(30),
    OBJECT_NAME           CHAR(30),
    OBJECT_INSTANCE       NUMERIC,

                                    -- 82 --



    OBJECT_TYPE           CHAR(30),
    SEARCH_COLUMNS        NUMERIC,
    ID                    NUMERIC,
    PARENT_ID             NUMERIC,
    POSITION              NUMERIC,
    OTHER                 LONG).

        Синтаксис EP оператора.
        -----------------------
Синтаксис EP оператора следующий:

EXPLAIN PLAN [SET STATEMENT_ID = 'description'
  [INTO table name]
  FCR sal_statement

Где:
description     Идентификатор опции (требует строку из 30 символов) для
                оператора. Если вы не установите STATEMENT_ID, описание будет =
                0. Желательно создадавать идентификатор для этого поля,
                поскольку PLAN_TABLE может открываться и использоваться другими
                пользователями.

table name      Выражение-опция, определяющее имя таблицы вывода, в которую вы
                хотите запоминать результаты оператора EP. Таблица должна
                содержать поля с именами, типами и длиной, как в таблице
                PLAN_TABLE, описанной в разделе "Создание таблицы вывода для
                EXPLAIN PLAN".  Если имя владельца опущено, оператор EP
                попытается вставить в таблицу PLAN_TABLE владельцем текущего
                пользователя.

sgl_statement   Полный текст INSERT,DELETE или SELECT оператора, для которого
                вы хотите запустить EXPLAIN PLAN.

        Поля таблицы EXPLAIN PLAN.
        --------------------------
Таблица EXPLAIN PLAN состоит из следующих полей:

STATEMENT_ID     Идентификатор опции, которую вы определяете в
                 операторе EP.

TIMESTAMP        Время и дата анализа оператора.
REMARKS          Некоторые комментарии (от 1 до 80 символов), которыми вы
                 захотите сопроводить каждый шаг объясняемого плана. Если вам
                 необходимо изменить или добавить комментарий в какой-либо
                 записи таблицыPLAN_TABLE, используйте оператор UPDATE.

OPERATION        Имя внутреннего оператора, выполняемого на этом шаге. Смотри
                 таблицу 7-1.

OPTIONS          Более детальное описание оператора, выполняемого на этом шаге.
                 Смотри таблицу 7-2.
OBJECT NODE      Имя указателя базы данных, используемое для возврата объекта
                 (имя таблицы или представления).

OBJECT OWNER     Имя пользователя, хозяина таблицы.
OBJECT NAME      Имя таблицы базы данных или индекса.



                                    -- 83 --



OBJECT INSTANCE  Число, соответствующее обычной позиции объекта, в которой он
                 расположен в оригинальном операторе. Нумерация происходит
                 слева направо по тексту оператора. Заметьте, что вид
                 расположения будет получен в непредсказуемых числах.

OBJECT TYPE      Модификатор, который представляет описательную информацию об
                 объекте базы данных, например, NON-UNIQUE для индексов.

SEARCH COLUMNS   Не используется в настоящей версии.
ID               Число, назначаемое каждому щагу выполнения.

PARENT_ID        ID следующего шага выполнения, которое действует на вывод ID
                 шага. Чтобы описать как ID и PARENT_ID показывают порядок
                 выполнения плана выполнения, смотри "Пример вывода EXPLAIN
                 PLAN" на рис.7-1 в этой главе.

POSITION         Порядок выполнения для шагов, имеющих один и тот же PARENT_ID.

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

Таблица 7-1 содержит внутренние операторы, которые Которые выполняет СУБД во
время выполнения SQL оператора:

Таблица 7-1. Имена операций, используемых EXPLAIN PLAN.
-------------------------------------------------------

Операция         Описание
--------------------------------------------------------------------
AND-EQUAL     Эта операция используется для фразы WHEN, содержащей
                эквивалентные сравнения и AND вместе, где каждое сравнение
                включает неуникальное индексное поле. При этом получается
                запись из каждого сравнения и выполняется пересечение.

CONNECT BY    Выбор, основанный на поиске по дереву. Он используется для
                выполнения фразы CONNECT BY в операторах SELECT.

CONCATENATION Выбор из группы таблиц.В основе операция UNION ALL.

COUNTING      Операция, которая подсчитывает количество записей,
              выбранных из таблицы.

FILTER        Ограничение для записей, выбираемых из таблицы.
FIRST ROW     Выбор только первой записи результата запроса.
FOR UPDATE    Выбор,который размещает замки на выбранной записи.

INDEX         Выбор из индекса.Эта операция имеет полные опции.
              Смотри таблицу 7-2.
INTERSECTION  Выбор записей,общих для двух таблиц. Записи внвчале
              сортируются.
MERGE JOIN    Объединение, выполняемое при слиянии двух сортированных
                наборов операндов. Эта операция имеет опции, которые показаны
                далее. Смотри таблицу 7-2.

MINUS         Выбор записей в исходной таблице 1, несодержащихся в таблице
                2.

                                    -- 84 --



NESTED LOOPS  Объединенная операция, выполняемая над двумя
              подчиненными операциями. Для каждой записи,
              получаемой при первой подчиненной операции,
              выполняется вторая подчиненная операция. Эта
              операция имеет опции, которые показаны далее.
              Смотри таблицу 7-2.
PROJECTION    Выборка подмножества полей из таблицы.

REMOTE        Выбор из другой базы данных, отличной от текущей.

SEQUENCE      Операция вызова генератора последовательности.

SORT          Выбор записей, расположенных в одном или более
              полях. Эта операция имеет опции, которые показаны
              далее. Смотри таблицу 7-2.
TABLE ACCESS  Выбор из базовой таблицы. Эта операция имеет опции,
              которые показаны далее. Смотри таблицу 7-2.
UNION         Выбор уникальных записей из двух таблиц. Дубликаты
              теряются.
VIEW          Выбор из виртуальной таблицы.

Таблица 7-2 показывает операции, имеющие опции, описывающие шаги
выполнения.

Таблица 7-2. Операторы, имеющие опции.
--------------------------------------
Операторы        Опции         Описания
--------------------------------------------------------------------
INDEX            UNIQUE SCAN   Индекс ищет уникальную величину.
                 RABGE SCAN    Индекс ищет диапазон значений,
                               выбранный с помощью BETWEEN
                               логического оператора.

MERGE JOIN       OUTER         Внешнее объединение.

NESTED LOOPS     OUTER         Внешнее объединение.

SORT             UNIQUE        Сортировка для получения уникальных
                               значений.
                 GROUP BY      Сортировка для групповых операций.
                 JOIN          Сортировка для объединения.
                 ORDER BY      Сортировка в определенном порядке.

TABLE ACCESS     BY ROWID      Доступ к таблице по ROWID. ROWID
                               выбирается из индекса,затем запись
                               ищется в таблице.
                 FULL          Доступ к таблице при полном
                               сканировании.
                 CLUSTER       Доступ к таблице по кластерному ключу

Пример вывода EXPLAIN PLAN.
---------------------------
Следующий пример показывает SQL оператор и соответствующий план
выполнения, создаваемый при использовании EP оператора.
Этот запрос выбирает имена и связанную информацию для служащих, чья
зарплата не попадает внутрь интервала таблицы FALGRADE:



                                    -- 85 --



SELECT ENAME, JOB, SAL, DNAME
    FROM EMP,DEPT
    WHERE EMP.DEPTNO = DEPT.DEPTNO
    AND NOT EXISTS
            (SELECT *
                   FROM SALGRADE
                   WHERE EMP.SAL BETWEEN LOSAL AND HISAL)

EP оператор вырабатывает план выполнения и помещает вывод в таблице
PLAN_TABLE:

EXPLAIN PLAN
SET STATEMENT_ID = 'EMP_SAL'
FOR
SELECT ENAME, JOB, SAL, DNAME
    FROM EMP,DEPT
    WHERE EMP.DEPTNO = DEPT.DEPTNO
    AND NOT EXISTS
            (SELECT *
                   FROM SALGRADE
                   WHERE EMP.SAL BETWEEN LOSAL AND HISAL)

Формат таблицы вывода EP оператора.
-----------------------------------
SELECT оператор генерирует следующий вывод:

SELECT OPERATION, OPTIONS, OBJECT_NAME, ID, PARENT_ID, POSITION
    FROM PLAN_TABLE
    WHERE STATEMENT_ID = 'EMP_SAL'
    ORDER BY ID

OPERATION     OPTIONS   OBJECT_NAME  ID  PARENT_ID  POSITION
------------------------------------------------------------
FILTER                                1                    0
MERGE JOIN                            2          1         1
SORT          JOIN                    3          2         1
TABLE ACCESS  FULL      DEPT          4          3         1
SORT          JOIN                    5          2         2
TABLE ACCESS  FULL      EMP           6          5         1
TABLE ACCESS  FULL      SALGRADE      7          1         2

Когда специфицирован ORDER BY ID, поле ID распечатывает операторы
последовательно. Однако, оператор не был выполнен по порядку,
записанному в поле ID. Поскольку PARENT_ID получает информацию от
ID, заметьте, что PARENT_ID удовлетворяют более одного шага ID.
Например, шаг 2,merge join и шаг 7,table access, оба соответствуют
шагу 1. Вложенное виртуальное представление последовательности
выполнения показаны в разделе "Вложенный формат вывода EXPLAIN PLAN"

Вложенный формат вывода EXPLAIN PLAN.
-------------------------------------
Этот тип оператора SELECT создает вложенное представление вывода,
которое более точно изображает порядок шагов, выполняемых при
выполнении SQL оператора. Порядок представляет собой древовидную
структуру, показанную на рисунке 7-1.




                                    -- 86 --



LECT LPAD('',2*LEVEL)ііOPERATIONіі''ііOPTIONSіі''ііOBJECT_NAME QUERY_PLAN
     FROM PLAN_TABLE WHERE_STATEMENT_ID = 'EMP_SAL'
     CONNECT BY PRIOP ID = PARENT_ID AND STATEMENT_ID = 'EMP_SAL'
     START WITH ID = 1

QUERY PLAN
----------
  FILTER
    MERGE JOIN
      TABLE ACCESS FULL DEPT
     SORT JOIN
      TABLE ACCESS FULL EMP
    TABLE ACCESS FULL SALGRADE

Рис.7-1. Древовидная структура плана выполнения.
------------------------------------------------
                                Ъ--Дї
                                і 1 і FILTER
                                АДВДЩ
                         Ъ--------Б------Дї
                       ЪДБДї            ЪДБДї
                       і 2 і MERGE JOIN і 7 і TABLE ACCESS
                       АДВДЩ            А--ДЩ
                Ъ--------Б--------Дї
              ЪДБДї              ЪДБДї
    SORT JOIN і 5 і              і 3 і SORT JOIN
              АДВДЩ              АДВДЩ
                і                  і
              ЪДБДї              ЪДБДї
 TABLE ACCESS і 6 і              і 4 і TABLE ACCESS
              А--ДЩ              А--ДЩ

Эта древовидная структура показывает какие операции могут
происходить в течение выполнения SQL оператора, переход от одной
операции к другой. Каждый шаг плана выполнения помечен номером
(педставляющим поле ID в таблице PLAN_TABLE) и изображен как узел.
Результатом выполнения каждого узла является переход к узлу-родителю
выше по дереву.

        ПРИЛОЖЕНИЕ А.
        ННННННННННННН

        ИНСТРУКЦИЯ ПО ВЫПОЛНЕНИЮ НАЧАЛЬНОЙ ИНСТАЛЛЯЦИИ СУБД .
        ----------------------------------------------------

Большая часть этой инструкции подразумевает, что вы настраиваите СУБД ОРАКЛ,
которая уже запущена. Однако, многие значительные настроечные действия для СУБД
могут быть выполнены во время инсталляции. Это приложение содержит настроечные
рекомендации для инсталляции СУБД ОРАКЛ. Следуя этим инструкциям во время
инсталляции, вы сможете уменьшить необходимость настройки СУБД во время ее
работы. Это приложение содержит рекомендации для следующих инсталляционных
действий:
- изменение величин INIT.ORA парамеиров от значения по умолчанию
- распределение откатных сегментов
- распределение ввода/вывода




                                    -- 87 --



        ИЗМЕНЕНИЕ ЗНАЧЕНИЙ INIT.ORA ПАРАМЕТРОВ.
        --------------------------------------Д

Этот раздел представляет INIT.ORA параметры, значение которых нужно изменить от
значения по умолчанию когда вы производите инсталляцию СУБД ОРАКЛ версия 6.0.

DB_BLOCK_BUFFERS   Этот параметр пределяет количество буферов в КЭШе буферов в
                   SGA. Количество буферов влияет на работу КЭШа. КЭШ большего
                   размера снижает коли- чество записей измененных данных.
                   Однако,большой КЭШ может потребовать слишком много памяти и
                   вызвать пэйджинг и свопинг.

                   Оцените количество блоков базы данных, к которым ваше
                   приложение обращается наиболее часто,включая таблицы,
                   индексы и откатные сегменты. Эта оценка является грубой
                   оценкой минимального количества буферов, которое должен
                   содержать КЭШ.  Для дополнительной информации по КЭШу
                   буферов обратитесь к приложению В "Процесс записи базы
                   данных (DBWR)".

        Параметры КЭШа словаря данных.
        ------------------------------
21 параметр КЭШа словаря данных оперделяют размер КЭШа словаря данных в SGA.
Все эти параметры начинаются с "DC_". Каждый параметр определяет количество
элементов в КЭШах словаря данных. Вы,возможно, найдете полезным увеличить
величины этих параметров от их значения по умолчанию:

DC_COLUMNS   Установите этот параметр соответствующим количеству полей, на
             которые ссылаются все параллельно работающие пользователи. Для
             большинства приложений значение по умолчанию, равное 300, слишком
             мало.

DC_TABLES    Установите этот параметр по количеству таблиц, на которые ссылают
             ся все одновременно работающие пользователи. Для большинства
             приложений значение по умолчанию, равное 100, слишком мало.

Для дополнительной информации по КЭШу словаря данных обратитесь к главе 3
"Настройка распределения памяти".

FREE_LIST_PROC     Этот параметр определяет количество свободных списков для
                   каждой таблицы. ОРАКЛ использует свободные списки для
                   хранения блоков, способных принять новые записи. Если много
                   процессов одновременно вставляют новые записи в одну и ту же
                   таблицу, вам следует увеличить величину этого параметра.
                   Если ваша база данных доступна одному экземпляру ОРАКЛа,
                   максимальная величина этого параметра = 32. Для
                   дополнительной информации по свободным спискам обратитесь к
                   главе 6 "Дополнительные настроечные рекомендации".

LOG_ALLOCATION     Этот параметр определяет количество блоков в файле регистра
                   ции изменений,количество,отведенных экземпляру ОРАКЛа, когда
                   он требует больше пространства в файле. Если ваша база
                   данных доступна одному экземпляру ОРАКЛа, установите этот
                   параметр величиной больше,чем размер наибольшего файла регис
                   трации изменений,чтобы предотвратить ненужные распределения.




                                    -- 88 --



PROCESSES          Этот параметр определяет максимальное количество процессов
                   операционной системы, которые могут использовать ОРАКЛ
                   одновременно. Величина этого параметра может включать 5 для
                   фоновых процессов и по 1 для каждого процесса пользователя.
                   Напр., если вы хотите иметь 50 пользователей одновреме-,
                   установите значение этого параметра не менее 55.

ROLLBACK_SEGMENTS  Этот параметр представляет список откатных сегментов,
                   которые требуются ОРАКЛу для старта системы.  Список ваших
                   откатных сегментов является значением этого параметра.
                   Чтобы определить сколько вам нужно откатных сегменто,
                   обратитесь к разделу "Распределение откатных сегментов"
                   дальше в этом приложении. После инсталляции системы вам
                   следует создать хотя бы один откатный сегмент в табличном
                   пространсмтве SYSTEM в дополнение к откатному сегменту
                   системы до того, как вы сможете создать хотя бы один объект
                   базы данных.

SEQUENCE_CACHE_    Этот параметр определяет количество последова- тельностей,
                   которые могут быть кэшированы в SGA для быстрого доступа.
                   Значение по умолчанию = 10.  Это значение подходит для
                   большинства приложений.  Если ваше приложение использует
                   более 10 последовательностей одновременно, увеличьте
                   значение этого параметра.

SORT_AREA_SIZE     Этот параметр определяет количество памяти, выделенное
                   ОРАКЛом для операций сортировок.  Значение по умолчанию
                   обычно достаточно велико для большинства сортировок. Однако,
                   если вы создаете очень большие индексы или выполняете SQL
                   операторы с выражениями GROUP BY или OTHER BY, которые
                   требуют очень больших таблиц, вам следует увеличить значение
                   этого параметра.
                   Для дополнительной информации по выполнению
                   сортировок обратитесь к главе 6 "Дополнительные
                   настроечные рекомендации".


        ВЫДЕЛЕНИЕ ОТКАТНЫХ СЕГМЕНТОВ.
        ----------------------------Д
Правильное выделение откатных сегментов необходимо для оптимального функциони
рования базы данных. Размеры и количество откатных сегментов, требуемое для
оптимального функционирования, зависит от вашего приложения. Для дополнительной
информации обратитесь к главе 5 "Настройка конфликтов".
Далее следуют несколько рекомендаций, основанных на количестве одновременно
выполняемых транзакцийй в вашей системе. Эти рекомендации соответствуют
большинству приложений:

Количество одновременных     Рекомендуемое количество
транзакций                   откатных сегментов
----------------------------------------------------Д
менее 16                     4 сегмента
от 16 до 32                  8 сегментов
более32                      n/4,но не более 50

Для создания откатных сегментов используйте SQL оператор CREATE ROLLBACK
SEGMENTS. Для дополнительной информации обратитесь к Руководству по языку SQL.



                                    -- 89 --



        Выбор размеров откатных сегментов.
        ----------------------------------
Размер ваших откатных сегментов также влияет на работу системы. Этот размер
определяется сохраняемыми параметрами в операторе CREATE ROLLBACK SEGMENT. Ваши
откатные сегменты должны быть достаточно большими, чтобы содержать откатные
элементы для ваших транзакций.

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

Большой откатный сегмент может также улучшить выполнение одной транзакции,
которая преобразует большие объемы данных. Такая транзакция создает большие
откатные элементы. Если откатный элемент не входит в откатный сегмент, ОРАКЛ
расширяет сегмент. Динамическое расширение снижает производительность и его
следует по-возможности избегать.

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

        Для OLTP приложений.
        --------------------
Некоторые приложения выполняют "on line transaction processing" или OLTP.
OLTP-приложения характеризуются частыми и одновременно выполняемыми
транзакциями, которые имеют малые объемы данных. Если ваше приложение выполняет
только OLTP без длинных запросов и длинных транзакций, вы можете улучшить
работу, создав много маленьких откатных сегментов. Может быть полезно иметь
такое количество откатных сегментов, сколько одновременно выполняемых
транзакций. При этом каждая транзакция обращается к отдельному откатному
сегменту без риска конфликта.  Маленькие откатные сегменты желательно хранить в
КЭШе буферов, где доступ к ним наиболее быстрый. Типичный LOTP откатный сегмент
может иметь 2 экстента, каждый размером порядка 10 кбайт.


        РАСПРЕДЕЛЕНИЕ ВВОДА/ВЫВОДА (I/O).
        --------------------------------Д

Правильное распределение I/O может заметно улучшить работу. I/O может быть
распределен во время инсталляции СУБД. Распределение I/O во время инсталляции
может уменьшить необходимость его распределения потом, во время работы. Вот
порядок распределения I/O во время инсталляции СУБД:
- размещение файла журнала регистрации изменений
- размещение файла базы данных
- разделение таблиц и индексов
- выбор плотности данных (записей на блок)

Для полной информации по каждому пункту обратитесь к главе 4
"Настройка ввода/вывода".

        Приложение В.       ПРОЦЕСС ЗАПИСИ БАЗЫ ДАННЫХ (DBWR-ПРОЦЕСС).
                            ------------------------------------------

                                    -- 90 --



DBWR-процесс и управление КЭШем буферов в SGA значительно изменены в
подверсии 6.027 СУБД ОРАКЛ. В предыдущих подверсиях ОРАКЛа версии
6.0 DBWR-процесс был основным в настроечном процессе. В ОРАКЛе
подверсии 6.027 и последующих подверсиях DBWR-процессу не нужно
уделять много внимания при настройке.

Это приложение описывает работу DBWR-процесса в ОРАКЛе подверсии
6.027 и последующих подверсиях ОРАКЛа версии 6.0. Ниже обсуждаются
следующие темы:

- структура КЭШа буферов
- чтение данных в КЭШ буферов
- запись данных в КЭШ буферов
- запись данных в файлы базы данных
- запуск DBWR на запись
- наблюдение DBWR
- настройка DBWR

        СТРУКТУРА КЭШа БУФЕРОВ.
        ----------------------Д
Буферы в КЭШе буферов содержат копии блоков базы данных, к которым
часто обращаются ОРАКЛ процессы. Каждый буфер в КЭШе буферов может
содержать один блок ОРАКЛа. Количество буферов в КЭШе определяется
INIT.ORA параметром DB_BLOCK_BUFFERS.

        Списки КЭШа буферов.
        --------------------
Буферы в КЭШе находятся в двух списках:
- черновой список
- LRU-список

Черновой список содержит буферы, которые были использованы и еще не
записаны на диск.
LRU-список содержит свободные буферы, пинд-буферы и использованные
буферы, которые еще не переведены в черновой буфер. Свободные буферы
- это буферы, которые еще не использовались. Пинд-буферы - это
буферы, которые в данный момент в работе.
Когда ОРАКЛ-процесс имеет доступ к буферу, процесс помещает буфер в
конец LRU-списка, который называется MRU-конец. По мере того, как
буферы продолжают перемещаться в MRU-конец LRU-списка,
использованные беферы постепенно поступают в LRU-конец этого же
списка.

        ЧТЕНИЕ ДАННЫХ В КЭШ БУФЕРОВ.
        ----------------------------
Когда процессу пользователя ОРАКЛа нужно получить доступ к блоку,
повторно записанному в КЭШе буферов, процесс помещает буфер,который
содержит этот блок в MRU-конец LRU-списка. Затем процесс получает
доступ к этому буферу.
Когда процессу пользователя нужно получить доступ к блоку, которого
еще нет в КЭШе буферов, процесс должен прочитать блок из файла базы
данных, который находится на диске, в буфер КЭШа. До того, как
процесс прочитает блок в буфер КЭШа, процесс должен сначала найти
свободный буфер. Процесс просматривает LRU-список, начиная с LRU-
конца этого списка. Процесс ищет пока не найдет свободный буфер или
пока не найдет номе буфера, определенный INIT.ORA параметром
DB_BLOCK_MAX_SCAN_CNT.


                                    -- 91 --



В то время как процесс ищет буфер, он может найти использованные
буферы в LRU-списке. Тогда он перемещает этот буфер в черновой
список и продолжает искать. Когда процесс находит свободный буфер,
он читает блок в буфер и перемещает его в MRU-конец LRU-списка.
Если прцесс пользователя ОРАКЛа находит DB_BLOCK_MAX_SCAN_CNT
параметр не найдя свободный буфер, то процесс останавливает поиск и
сообщает DBWR-процессу, что нужно записать один из использованных
буферов на диск. Смотри раздел "Запуск DBWR на запись" ниже в этом
приложении.

        ЗАПИСЬ ДАННЫХ В ФАЙЛЫ БАЗЫ ДАННЫХ.
        ----------------------------------
Все записи файлов базы данных в буферы выполняются DBWWR-процессом,
фоновым процессом, ответственным за управление КЭШем буферов.
Главная работа этого процесса сохранять буферы чистыми. По мере того
как буферы КЭШа "загрязняются" процессами пользователя, количество
свободных буферов уменьшается. Если количество свободных буферов
становится слишком низким, процессы пользователя, которые должны
читать блоки с диска в КЭШ, не смогут найти свободные буферы.
Управление DBWR-процесса сводится к тому, что пользовательский
процесс всегда может найти свободные буферы.
LRU часть КЭша буферов нужна, чтобы уменьшить I/O. Блоки, которые
часто используются, т.е. блоки счастым доступом, маленькие таблицы
или индексы хранятся в КЭШе так, что их не нужно часто снова читать
с диска. Блоки с редким доступом, т.е. блоки из очень больших таблиц
или блоки из очень больших индексов, пишутся на диск после того, как
они были модифицированы, чтобы оставить место в КЭШе буферов для
других блоков. Схема LRU позволяет блоки, наиболее часто требующие
доступа, оставлять в КЭШе буферов так, чтобы, когда буфер
записывается на диск, то вероятно, что содержащиеся в нем данные не
будут скоро использоваться. Однако, если DBWR-процесс становится
слишком активным, он может записать блоки, которые должны быть снова
использованы в скором времени, на диск.

        ЗАПУСК DBWR НА ЗАПИСЬ.
        ----------------------
DBWR-процесс получает сигнал на запись использованных буферов на
диск при следующих условиях:

- Когда процесс пользователя помещает буфер в черновой список и
  выясняется, что этот буфер достиг пороговой длины, процесс
  пользователя дает команду DBWR на запись. Пороговая длина
  определена как половина значения DB_BLOCK_WRITE_BATCH  INIT.ORA
  параметра.

- Когда процесс пользователя ищет DB_BLOCK_MAX_SCAN_CNT буферы, не
  найдя свободный буфер, процесс пользователя останавливает поиск по
  LRU-списку и выдает команду DBWR на запись.

- Через определенный интервал времени (timeout),каждые 3 секунды
  DBWR-процесс выдает команду сам себе.

- Когда случается контрольная точка, процесс записи журнала
  регистрации (LGWR-процесс) выдает команду DBWR-процессу.

В первых двух случаях DBWR-процесс записывает блоки чернового списка
на диск по сигналу multy-block write. Количество блоков,
записываемое по этому сигналу, определяется INIT.ORA параметром

                                    -- 92 --



DB_BLOCK_WRITE_BATCH. Если черновой список не содержит
DB_BLOCK_WRITE_BATCH буферы, когда DBWR получает сигнал, то
DBWR-процесс ищет LRU-список и в нем дополнительные использованные
буферы.
Через каждые 3 секунды происходит timeout. В этом случае
DBWR-процесс ищет определенное количество буферов в LRU-списке и
пишет буферы, которые найдет, на диск. Через 3 секунды DBWR-процесс
ищет новый набор буферов. Количество буферов, найденное в каждом из
timeout - это двойное значение DB_BLOCK_WRITE_BATCH параметра.
Если база данных простаивает, DBWR-процесс переписывает полностью
КЭШ буферов на диск.
Когда случается контрольная точка LGWR-процесс определяет список
модифмцированных буферов, который должен быть переписан на диск.
DBWR-процесс пишет эти буферы на диск.

        НАБЛЮДЕНИЕ DBWR.
        ----------------
ОРАКЛ составляет статистику деятельности DBWR-процесса:

dbwr free low     Значение этой статистики - это количество раз,
                  которое DBWR-процесс получал сигналы на запись в
                  случае, если количество буферов в черновом списке
                  было равно половине значения DB_BLOCK_WRITE_BATCH.

dbwr free needed  Значение этой статистики - это количество раз,
                  которое DBWR-процесс получал сигналы на запись,
                  когда процесс пользователя искал DB_BLOCK_MAX_
                  SCAN_CNT буферы, не найдя свободный буфер.

Эти статистики наблюдаются с помощью SQL*DBA MONITOR STATIATICS
CACHE экрана. Увидеть этот экран можно с помощью SQL*DBA команды:

        SQLDBA> MONITOR STATISTICS CACHE

Изображение SQL*DBA MONITOR STATISTICS CACHE получается на двух
экранах. Рис.В-1 и В-2 показывают эти экраны. На рис В-2 вы можете
видеть второй экран, показывающий статистики dbwr free low и dbwr
free needed.
Управление КЭШем буферов в ОРАКЛе организовано так, что процессу
пользователя не нужно искать DB_BLOCK_MAX_SCAN_CNT буферы, не найдя
свободные буферы. По этой причине значение dbwr free needed должно
быть всегда = 0. На рис.В-2 вы можете видеть, что суммарное значение
dbwr free needed статистики = 0.
Если вы наблюдаете значение dbwr free needed статистики отличное от
0, то значит, что величина DB_BLOCK_MAX_SCAN_CNT не была установлена
достаточно низкой. Значение этого параметра не следует менять от
значени по умолчанию = 30 буферов.

        Рис.В-1 (Экран 1).SQL*DBA MONITOR STATISTICS CACHE
Ъ------------------------------------------------------------------ї
і                         ORACLE Statistics Moniyor                і
і       ORACLE PID: 0   Session  : 0   User Name: SYSTEM TATISTICS і
і Statistic Name           CUR      AUG      MAX      MIN      TOT і
і --------------------  ------  -------  -------  -------  ------- і
і db block gets          38.46    38.46    38.46    38.46      500 і
і consistent gets        95.31    95.31    95.31    95.31     1239 і
і physical reads         41.15    41.15    41.15    41.15      535 і
і physical writes         9.15     9.15     9.15     9.15      119 і

                                    -- 93 --



і db block changes       29.38    29.38    29.38    29.38      382 і
і change write time       0.00     0.00     0.00     0.00        0 і
і consistent changes      2.77     2.77     2.77     2.77       36 і
і write complete waits    0.23     0.23     0.23     0.23        3 і
і write wait time         0.00     0.00     0.00     0.00        0 і
і buffer busy waits       0.00     0.00     0.00     0.00        0 і
і busy wait time          0.00     0.00     0.00     0.00        0 і
і redo synch writes       0.69     0.69     0.69     0.69        9 і
і redo synch time         0.00     0.00     0.00     0.00        0 і
і DEUR exchange waits     0.00     0.00     0.00     0.00        0 і
і exchange deadlocks      0.00     0.00     0.00     0.00        0 і
і free buffer requests   45.31    45.31    45.31    45.31      589 і
і free buffer scans      45.31    45.31    45.31    45.31      589 і
і free buffer inspecte  859.85   859.85   859.85   859.85    11178 і
і free buffer waits       2.38     2.38     2.38     2.38       31 і
і free wait time          0.00     0.00     0.00     0.00        0 і
А------------------------------------------------------------------Щ

        Рис.В-2 (Экран 2). SQL*DBA MONITOR STATISTICS CACHE
Ъ------------------------------------------------------------------ї
і                        ORACLE Statistics Monitor                 і
і       ORACLE PID: 0   Session :  0  User Name: SYSTEM STATISTICS і
і Statistic Name           CUR      AUG      MAX      MIN      TOT і
і --------------------- ------  -------  -------  -------  ------- і
і ...continued (page 2)                                            і
і dbwr timeouts           0.00      0.00    0.00     0.00        0 і
і dbwr free needed        0.00      0.00    0.00     0.00        0 і
і dbwr free lou           0.54      0.54    0.54     0.54        7 і
і dbwr buffers scanned   10.77     10.77   10.77    10.77      140 і
і dbwr checkpoints        0.00      0.00    0.00     0.00        0 і
і consistent forceouts    0.00      0.00    0.00     0.00        0 і
А------------------------------------------------------------------Щ

        НАСТРОЙКА DBWR.
        --------------Д
Внекоторых случаях вы можете захотеть провести эксперимент с
увеличением значения INIT.ORA параметра DB_BLOCK_WRITE_BATCH от
значения по умолчанию. Увеличение этого параметра позволит:

- снизить частоту, с которой процесс пользователя подает сигнал DBWR
  на запись.

- увеличить количество блоков, которое записывает DBWR.

Увеличение DB_BLOCK_WRITE_BATCH может улучшить следующие возможности  DBWR:

- использовать возможности операционной системы записывать блоки на
  различные диски параллельно.

- писать соседние блоки за один ввод/вывод.

     ПРИЛОЖЕНИЕ С.     ИЗМЕНЕНИЕ INIT.ORA ПАРАМЕТРОВ.
                       ------------------------------

Определенные INIT.ORA параметры воздействуют на работу вашей системы. Когда
возможно, выполнение этих параметров описано в этом приложении в следующем
объеме:
- имя параметра

                                    -- 94 --



- функция и описание
- значение по умолчанию и область изменения значений
- когда возможно изменение параметра
- действие измененного параметра
- ссылки на другие INIT.ORA параметры и литературу

Чтобы изменить INIT.ORA параметр, вам следует закрыть и снова стартовать СУБД.
Некоторые INIT.ORA параметры, которые разрешают совместную обработку данных,
увеличивают перегрузку. Это такие параметры, как: TIMED_STATISTICS_SQL_TRACE,
DB_BLOCK_LRU_STATISTICS, DB_BLOCK_LRU_EXTENDED_STATISTICS и обработка
спецификаций.  Вам необходимо быть увереным, что вы отключили эти параметры,
когда они не нужны.

Вы можете наблюдать установление вашей системой текущих параметров с помощью
SQL*DBA команды:

        SQLDBA>SHOW PARAMETERS

Смотрите главу 14 "Открытие и закрытие базы данных" Руководства администратора
базы данных, если вы хотите пояснений по SQL*DBA.

        CONTEXT_AREA
        ------------Д
Описание          Количество места в байтах,которое выделяет система для
                  контекстной области. Контекстная область используется для
                  запоминания структуры данных, необходимых для выполнения SQL
                  оператора.

Значение по       4096 байт
умолчанию

Область изменения Максимальный размер может быть от 1024 до 131072
значений          байта. Это зависит от вашей операционной системы.
                  Прекомпилирующие программы пользователя или OCI (ORACLE CALL
                  Interface) могут установить другой размер.

Когда менять      Если ваши прикладные процессы:
                  - длинные и комплексные SQL операторы
                  - таблицы с большим количеством полей
                  - таблицы с длинными записями
                  Этот параметр необходим для увеличения начального размера
                  контекстных областей. Одна контекстная область выделяется для
                  анализа одного оператора.  Чтобы увеличить размер контекстной
                  области используйте параметр CONTEXT_INCR.

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

Ссылки            Глава 3 "Настройка распределения памяти", Руководство
                  пользователя по инсталляции, глава 8 "Контекстные области"
                  Руководства администратора базы данных.

        CONTEXT_INCR
        ------------


                                    -- 95 --



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

Значение по       4 кбайта для большинства систем
умолчанию

Область изменения От 1024 ДО 32768 байт
значений

Когда менять      Если CONTEXT_INCR очень мал, нужно много шагов, чтобы
                  получить достаточно места в памяти для выполнения SQL
                  операторов. Если CONTEXT_INCR слишком большой, будет теряться
                  много памяти.  Прекомпилирующие программы пользователя и OCI
                  (ORACLE CALL Interface) могут определить различ- ный
                  начальный размер.

Действие изменен- Когда параметр увеличен, то будет выделено
ного параметра    больше памяти для контекстной области, незначи-
                  тельно снижая производительность CPU.

Ссылки            Глава 3 "Настройка распределения памяти", Руководство
                  пользователя по инсталляции, глава 8 "Контекстные области"
                  Руководства администратора базы данных.

        CPU_COUNT
        --------Д

Описание          Это количество CPU, доступных экземпляру ОРАКЛа.  ОРАКЛ
                  устанавливает значение этого параметра автоматически. Для
                  однопроцессорного компьютера это значение устанавливается =
                  0.  Значение CPU_COUNT определяет по умолчанию значе- ние
                  INIT.ORA параметра LOG_SIMULTANEOUS_COPIES.

Значение по       Зависит от операционной системы.
умолчанию

Когда менять      ОРАКЛ устанавливает это значение автоматически. Не меняйте
                  значение этого параметра.

Действие изменен- Если количество защелок копирования = 0,то
ного параметра    элементы копируются по защелке распределения. Если CPU_COUNT
                  = 0, LOG_SIMULTANEOUS_COPIES тоже = 0, заставляя процесс
                  пользователя всегда копировать по защелке распределения. Если
                  вы желаете копировать все элементы по защелке распределения
                  вам следует устанавливать параметр LOG_ SIMULTANEOUS_COPIES,
                  а не этот параметр.

Ссылки            Раздел "Защелки копирования" в главе 5, "Изменение значений
                  INIT.ORA параметров" в приложении А; LOG_SIMULTANEOUS_COPIES.

        ПАРАМЕТРЫ КЭШа СЛОВАРЯ ДАННЫХ.
        ------------------------------





                                    -- 96 --



Описание          INIT.ORA "DC_" параметры контролируют размеры КЭШей словаря
                  данных. Проверяя элементы в V$ROWCACHE таблице, вы можете
                  определить адекватно ли установлен каждый параметр. КЭШи
                  описаны ниже по именам. Функция, значение по умолчанию и
                  область изменения значений даны для каждого.

Ссылки            Глава 3 "Настройка распределения памяти", "Изменение значений
                  INIT.ORA параметров" в приложении А.

        КЭШи словаря данных.
        --------------------

DC_COLUMNS_GRANTS Это количество элементов в поле grant cache.  Разрешено 1 для
                  каждого поля, имеющего grant.  Значение по умолчанию = 50.
                  Значения могут меняться от 1 до неограниченного значения.

DC_COLUMNS        Количество элементов в поле, описывающем КЭШ.  Значение
                  должно равняться как минимум самому большому количеству полей
                  в одной таблице. Для лучшей работы значение должно быть
                  близко к количеству полей во всех таблицах, на которые
                  ссылаются все одновременно и параллельно работающие
                  пользователи. Значение по умолчанию = 300. Область изменения
                  значений от 150, верхней границы нет.

DC_CONSTRAINT_    Количество элементов в КЭШе,содержащем элементы
DEPS              ограничения целостности (constraint cache).  Значение по
                  умолчанию = 200, область изменения значений не ограничена.

DC_CONSTRAINTS    Количество элементов ограничения целостности в КЭШе. Значение
                  по умолчанию = 150. Область измене- ния значений не
                  ограничена.

DC_FILES          Количество элементов в файле, описывающем КЭШ.  Разрешено 1
                  на каждый файл, связанный с пространством таблиц в работе.
                  Значение по умолчанию = 25. Область изменений не ограничена.

DC_FREE_EXTENTS   Количество элементов в free extent description КЭШе (этот КЭШ
                  определяет индивидуальное расширение свободного пространства
                  в независимости от размера). Значение по умолчанию = 50.
                  Область изменения значений от 5 до неограниченного значения.

DC_INDEXES        Количество элементов в КЭШе индексов. Значение по умолчанию =
                  50. Область изменения значений от 5 до неограниченного
                  значения.

DC_OBJECT_IDS     Количество элементов в КЭШе, идентифицирующем объекты.
                  Значение по умолчанию = 50. Область изменения значений от 1
                  до неограниченного значения.

DC_OBJECTS        Количество элементов в объектном КЭШе ( КЭШе, выделяющем
                  объекты по именам, как например таблицы, кластеры, индексы,
                  последовательности, синонимы и обзоры). Для лучшего
                  выполнения значение должно быть таким, сколько объектов
                  используется всеми пользователями в одно и то же время.
                  Значение по умолчанию = 100. область изменения зачений от 50
                  до неограниченного значения.



                                    -- 97 --



DC_ROLLBACK_      Количество элементов в КЭШе, описывающем откатные
SEGMENTS          сегменты. Значение по умолчанию = 25. Область изменения
                  значений от 2 и выше не ограничена.

DC_SEGMENTS       Количество элементов в КЭШе, описывающем сегмент.  Разрешено
                  1 для каждой таблицы, кластера, индекса и откатного сегмента,
                  используемых в одно и то же время. Значение по умолчанию =
                  50. Область изменения от 50 и до неограниченного значения.

DC_SEQUENCE_      Количество grant для последовательностей, которые
GRANTS            могут быть кэшированы. Значение по умолчанию = 20.  Область
                  изменения значений от 2 и выше.

DC_SEQUENCE       Количество элементов в КЭШе, описывающем последовательность.
                  Значение по умолчанию = 20. Область изменения значений от 2 и
                  выше.

DC_SYNONYMS       Количество элементов в КЭШе,содержащем синонимы.  Значение по
                  умолчанию = 50. Область изменения значений от 2 и выше.

DC_TABLE_GRANTS   Количество элементов в table grant КЭШе. Один элемент для
                  каждой таблицы с grant. Значение по умолчанию = 50. область
                  изменения значений от 2 и выше.

DC_TABLES         Количество элементов в КЭШе, содержащем таблицу, кластер или
                  обзор. Значение по умолчанию = 100 и область изменения
                  значений от 30 и выше. Вы, вероятно, найдете полезным
                  увеличить этот параметр до количества различных таблиц, на
                  которые ссылаются различные пользователи, работающие в одно и
                  то же время. Возможно вы захотите изменить значение этого
                  параметра от значения по умолчанию, установленного в версии
                  ОРАКЛа 6.0. Описание этого дано в приложении А.

DC_TABLESPACE_    Количество элементов в КЭШе, определяющем квоту
QUOTAS            для пространства таблицы. Пространство выделяется
                  индивидуаьно для каждого пользователя и каждой таблицы.
                  Значение по умолчанию = 25. Необходимо по 1 для каждой квоты
                  для каждого табличного пространства для каждого параллельно
                  работающего пользователя.  Заметьте, что неограниченная
                  привилегия RESOURCE это не квота.

DC_TABLESPACES    Количество элементов в КЭШе, описывающем пространство
                  таблицы. Значение по умолчанию = 25 и область изменения
                  значений от 25 и выше. Вам нужно 1 на 1 табличное
                  пространство.

DC_USED_EXTENTS   Количество элементов в КЭШе, описывающем используемые
                  расширения. Значение по умолчанию = 50 и область изменения
                  значений от 50 и выше.

DC_USER_NAMES     Размер КЭШа, содержащего имя записи, определяемое пользова
                  телем. Имена, такие как SCOTT заносятся под соответствующими
                  им номерами. Значение по умолчанию = 50 и область изменения
                  значений от 1 и выше. Этот параметр должен быть установлен по
                  количеству различных имен пользователей, на которые есть
                  ссылки или которые занесены в журнал регистрации изменений
                  ранее.


                                    -- 98 --



DC_USERS          Размер КЭШа, который содержит идентификационные
                  номера,записанные в DC_USERNAMES. Значение по умолчанию = 50
                  и область изменения значений от 1 и выше.

        DB_BLOCK_BUFFERS
        ----------------

Описание          Определяет количество буферов в КЭШе буферов в SGA.Каждый
                  буфер содержит один блок данных ОРАКЛа.  Это значение тем
                  больше, чем меньше требуется I/O, из-за увеличения
                  вероятности, что требуемый блок кэширован в памяти. Однако,
                  если значение слишком велико, SGA может подвергаться
                  пэйджингу, при этом снижается производительность.

                  Вы можете захотеть изменить значение этого параметра от
                  значения по умолчанию, установленного версией ОРАКЛа 6.0. Это
                  описано в приложении А.

Значение по       Определяется оперативной системой.
умолчанию

Область изменения От 4 до 65535
значений

Когда менять      Когда hit ratio меньше 60%-70%, увеличение количества буферов
                  может улучшить выполнение приложения. Приложения, которые
                  часто используют общие данные, тоже выиграют от увеличения.

Дествие изменен-  Увеличивая значение DB_BLOCK_BUFFERS, вы также
ного параметра    увеличиваете:
                  - размер области SGA, который содержит буферы.
                  - количество данных,которые могут быть кэшированы.
                  - вероятность,что данные останутся в КЭШе
                  - неиспользуемую память
                  - пэйджинг,если память переполняется
                  Основная задача - это улучшить выполнение, пока не появится
                  пэйджинг. Главный вред от увеличения размеров буферов - это
                  то,что память используется непроизводительно и увеличивается
                  вероятность появления пэйджинга и SGA и пользовательского
                  процесса. Пэйджинг можно уменьшить или устранить
                  соответствующей настройкой вашей операционной системы.

Ссылки            "Исследование деятельности КЭШа буферов" раздел главы 3,
                  "Структура КЭШа буферов" раздел приложения В,"Изменение
                  значений INIT.ORA параметров" в приложении А,Инструкция
                  пользователя по инсталляции.

        DB_BLOCK_LPU_EXTENDED_STATISTICS
        --------------------------------

Описание          Разрешает трансляцию статистик в таблицу X$KCBRBH, которая
                  увеличивает количество буферов в КЭШе буферов в SGA. Когда
                  это разрешено, то это позволяет хранить дополнительные
                  DB_BLOCK_LRU_ EXTENDED_STATISTICS блоки и номер диска,
                  доступный при необходимости хранения этих дополнительных
                  буферов. Эту настроечную программу следует отключать в случае
                  нормальной работы.


                                    -- 99 --



Значение по       0
умолчанию

Область изменения От 0 и выше без ограничения
значений

Когда менять      Когда транслируется статистика в таблицу X$KCBRBH, установите
                  этот параметр на максимальный размер, если вы хотите его
                  использовать для оценки КЭШа буферов. В противном случае
                  установите его в 0.

Дествие изменен-  Разрешение транслирования различных статистик.
ного параметра

Ссылки            Раздел "Разрешение записи в таблицу X$KCBRBH" в главе 3.

DB_BLOCK_LRU_     Разрешает трансляцию статистик в таблицу X$KCBCBH,
STATISTICS        которая увеличивает количество буферов в КЭШе в SGA. Эту
                  настроечную программу следует отключать в случае нормальной
                  работы.

Значение по       FALCE
умолчанию

Область изменения FALCE/TRUE
значений

Когда менять      Установите этот параметр в TRUE, когда вы хотите
                  транслировать статистику в таблицу X$KCBCBH. В противном
                  случае оставьте установку FALCE.

Действие изменен- Появляется статистика с данными в таблице X$KCBCBH
ного параметра

Ссылки            Раздел "Разрешение записи в таблицу X$KCBCBH" в главе 3.

        DB_BLOCK_MAX_SCAN_CNT
        --------------------Д
Описание          Количество буферов, которое процесс пользователя будет
                  сканировать, когда ищет буфер в LRU-списке, до вызова
                  процесса DBWR.

Значение по       30 буферов
умолчанию

Область изменения От 0 до значения параметра DB_BLOCK_BUFFERS.
значений

Когда менять      Рекомендаций по изменению значений нет.

Ссылки            Раздел "Структура КЭШа буферов" в приложении В.

        DB_BLOCK_SIZE
        ------------Д
Описание          Устанавливает размер в байтах блоков базы данных ОРАКЛ.
                  Значение DB_BLOCK_SIZE определяет размер блоков при создании
                  базы данных оператром CREATE DATABASE; во всех других случаях


                                   -- 100 --



                  значение должно быть установлено индивидувльно. Размер блока
                  может быть изменен после создания базы данных только при
                  создании новой базы данных.

                  Этот параметр также определяет размер буферов в КЭШе буферов
                  в SGA, количество байт, используемое для новой таблицы
                  (расширение INITIAL) и как много места выделяется для новых
                  данных (расширение NEXT).

Значение по       Обычно от 2048 до 4096 байт, в зависимости от
умолчанию         операционной системы.

Область изменения Определяется операционной системой.
значений

Когда менять      Этот параметр не используется при настройке. Это значение
                  обычно не следует менять.

Ссылки          Раздел "Распределение пространства в блоках данных" в главе 4.

DB_BLOCK_WRITE_BATCH
--------------------
Описание          Для многоблочных I/O количество блоков процесса записи базы
                  данных(DBWR), передаваемых за один раз в операционную систему
                  для записи.

Значение по       8 блоков
умолчанию

Область изменения От 1 до 128 блоков. Если операционная система по--ерживает
                  одну запись за один раз, значение следует установить между 2
                  и 8.

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

Дествие изменен-  Высокое значение увеличивает возможность DBWR
нного параметра   использовать способность операционной системы писать блоки на
                  различные диски параллельно, использовать преимущество
                  дискового поиска оптимального алгоритма и возможности писать
                  смежные блоки за один I/O. Однако, если КЭШ буферов
                  маленький, все блоки в пачке сцепляются до того как они
                  пишутся. И так, высокое значение увеличивает вероятность
                  ожидания пользовательским процессом пока будут модифицированы
                  блоки, которые пишутся в пачке. Вы можете увеличить этот
                  параметр до наблюдения статистик write complete waits и write
                  wait time increasing.

Ссылки            Раздел "Настройка DBWR" в приложении В.





                                   -- 101 --



        DB_FILE_MULTIBLOCK_READ_COUNT
        ----------------------------Д
Описание          Используется для многоблочного чтения.  Максимальное
                  количество блоков, читаемых за раз, когда выполняется
                  последовательное сканирование.  Значение по умолчанию
                  определяется DB_BLOCK_BUFFERS и PROCESSES.

Значение по       Определяется операционной системой.
умолчанию

Область изменения Определяется операционной системой.
значений

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

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

Ссылки            Раздел "Многоблочное чтение" в главе 2.

        FREE_LIST_INST
        --------------
Описание          Количество экземпляров, нужных для создания свободных
                  списков. Все прцессы, обращающиеся к одному экземпляру будут
                  использовать один свободный список. Количество должно
                  равняться количеству экземпляров (по 1 на каждый экземпляр).
                  Ни одно из выполнений не выиграет от увеличения этого
                  значения.

Значение по       1
умолчанию

Область изменения От 1 до количества экземпляров
значений

Когда менять      Этот параметр следует менять, когда много экземпляров.
                  Порядок изменения предложен в главе 21 Руководства
                  администратора базы данных.

Ссылки            Раздел "Свободные списки" в главе 6, Раздел "FREE_LIST_PROC"
                  в главе 21 Руководства администратора базы данных.

        FREE_LIST_PROC
        --------------
Описание          Количество свободных списков на экземпляр (FREE_ LIST_INST),
                  созданных для таблицы. Количество, которое используется,
                  когда таблица создается, постоянно для этой таблицы.  Вы
                  можете захотеть изменить значение этого параметра от его
                  значения по умолчанию во время инсталляции ОРАКЛа версии 6.0.
                  Описание этого дано в приложении А.

Значение по       1 свободный список.
умолчанию


                                   -- 102 --



Область изменения От 1 до 32 для одного экземпляра ОРАКЛа.
значений

Когда менять      Если таблица, которую вы будете создавать имеет очень высокую
                  INSERT деятельность (часто выполняет вставки), если вы
                  постоянно собираете статистику buffer busy waits, пока ваше
                  приложение проверяет таблицу X$WAITSTAT, если у вас есть
                  buffer busy waits статистика для класса блоков данных, вам
                  следует менять этот параметр.

Действие изменен- При увеличении добавляются свободные списки в
ного параметра    таблицы, которые будут созданы.

Ссылки            Раздел "Свободные списки" в главе 6, "Изменение значений
                  INIT.ORA параметров" в приложении А, "Динамическое выполнение
                  таблицы X$WAITSTAT" в главе 5, FREE_LIST_INST.

        LOG_ALLOCATION
        --------------
Описание          Количество блоков журнала регистрации изменений, предоставлен
                  ных экземпляру ОРАКЛа каждый раз, когда требуется больше
                 пространства для текущего файла журнала регистрации изменений.
                  Это количество для экземпляра, отражено в статистике redo
                  chunk allocations.  Вы можете захотеть изменить значение
                  этого параметра от его значения по умолчанию при инсталляции
                  ОРАКЛа версии 6.0.  Описание дано в приложении А.

Значение по       200 блоков.
умолчанию

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

Когда менять      Этот параметр нужно менять при работе с многими экземплярами.
                  Порядок изменения предложен в главе 21 Руководства
                  администратора базы данных.

Действие изменен- В системах с одним экземпляром установите этот
ного параметра    параметр ниже, чем количество блоков в файле журнала
                  регистрации и больше, чем redo chunk allocations.

Ссылки            Раздел "LGWR процесс" в главе 5, "Инструкция по
                  первоначальной инсталляции СУБД" в приложении А, глава 21
                  Руководства администратора базы данных.

        LOG_BUFFER
        ----------
Описание          Размер в байтах буфера журнала регистрации. Если размер
                  адекватный, то статистика redo log space должна быть равна 0.

Значение по       Определяется операционной системой.
умолчанию

Область изменения По крайней мере в 4 раза выше размера
параметра         максимального блока. Наиболее разумно от 65536 байт и выше.



                                   -- 103 --



Когда менять      Когда значение redo log space requests не равно 0. Это
                  значение показывает, что процессы пользователя ожидают место
                  в буфере.

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

Ссылки            Раздел "Пространство в буфере журнала регистрации изменений"
                  в главе 5.

        LOG_CHECKPOINT_INTERVAL
        ----------------------Д
Описание          Количество вновь заполненных блоков файла журнала регистрации
                  для установки контрольной точки. Вне зависимости от этого
                  значения контрольная точка всегда случается в момент
                  переключения журнала.  Количество контрольных точек в одном
                  экземпляре показано в статистике statistic dbwr checkpoints.
                  Если LOG_CHECKPOINT_INTERVAL установлен слишком маленьким,
                  контрольная точка случается слишком часто и восстановление
                  экземпляра происходит быстро.

Значение по       Определяется операционной систеиой.

Область изменения От 20 и выше не ограничено.
значений

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

Действие изменен- Увеличивая этот, размер вы увеличиваете время
ного параметра    восстановления, но улучшаете выполнение.

Ссылки            "Дополнительные настроечные соображения" глава 6.


        LOG_ENTRY_PREBUILD_THRESHOLD
        ----------------------------
Описание          Максимальный размер redo-элемента, преобразованого до
                  копирования в буфер журнала. Если это разрешено, то процесс
                  пользователя преобразует redo- информацию до запроса защелки
                  копирования.  Если значение LOG_SIMULTANEOUS_COPIES = 0, то
                  этот параметр игнорируется.

Значение по       0
умолчанию

Область изменения От 0 до 2048 или 4096 байт в зависимости от вашей
значений          операционной системы.

Когда менять      Для многопроцессорных систем может быть выгодно увеличить
                  этот параметр. Для однопроцессорной системы следует иметь это
                  значение =0.

Дествие изменен-  Для систем, имеющих конфликты защелки, при
ного параметра    увеличении значения этого параметра уменьшается время захвата
                  защелки копирования.


                                   -- 104 --



Ссылки            LOG_SIMULTANEOUS_COPIES, раздел "Снижение конфликтов защелок
                  копирования" в главе 5.

        LOG_SIMULTANEOUS_COPIES
        ----------------------Д
Описание          Максимальное количество защелок копирования, доступное для
                  записи элементов журнала регистрации одновременно. Для
                  хорошей работы вы можете иметь количество защелок в бва раза
                  выше, чем количество CPU. Для однопроцессорной системы
                  установите это значение в 0, т.к. элементы копируются по
                  защелке распределения. Если он = 0, то параметр LOG_SMALL_
                  ENTRY_MAX_SIZE игнорируется.

Значение по       Если нет специальной установки, то значение по
умолчанию         умолчанию равно количеству CPU (CPU_COUNT).

Область изменения От 0 и выше не ограничено.
значений

Когда менять      При налилии конфликтов защелок копировани. Это видно на
                  экране SQL*DBA MONITOR LATCH.

Действие изменен- При увеличении этого параметра уменьшаются конфли-
ного параметра    кты.Копирование идет по нескольким защелкам сразу.

Ссылки            "Настройка конфликтов" глава 5, LOG_SMALL_ENTRY_MAX_SIZE,
                                                  CPU_COUNT.


        LOG_SMALL_ENTRY_MAX_SIZE
        ------------------------
Описание         Максимальный размер копии в байтах в буфер журнала регистрации
                 по защелке распределения при неполучении защелки копирования.
                 Если значение предыдущего параметра = 0, то этот параметр
                 игнорируется (все записи малы и могут быть выполнены без
                 защелки копирования). Если redo-элементы копируютя по защелке
                 распределения, процесс пользователя освобождает защелку после
                 копирования. Если элемент больше, чем этот параметр, процесс
                 пользователя освобождает защелку после распределения
                 пространства в буфере и получения защелки копирования.

Значение по       800 байт (VMS).
умолчанию

Область изменения Определяется операционной системой.
значений

Когда менять      Чтобы снизить конфликты защелки распределения, уменьшите это
                  значение. Это уменьшит количество элементов, копируемых по
                  защелке распределения в зависимости от размеров этих
                  элементов.

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



                                   -- 105 --



Ссылки            LOG_SIMULTANEOUS_COPIES, раздел "Защелка распределения" в
                  главе 5.


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

Значение по       500 блоков оперативной системы.
умолчанию

Область изменения От 1 и выше не ограничено.
значений

Когда менять      Вы можете захотеть изменить это значение, если:
                  - вы выполняете SQL трассировку для длинной секции
                  - вы беспокоитеть,что трассировочные файлы
                    занимают слишком много места

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

Ссылки            "Выполнение тестовых программ" глава 7.


        OPEN_CURSORS
        ------------
Описание          Определяет суммарное количество открытых курсоров
                  (контекстных областей), которое может процесс иметь
                  одновременно.Этот параметр не контролирует особенносей
                  системы, а контролирует максимальный адрес пространства
                  памяти, используемый каждым процессом. Контроль контекстных
                  областей специфичен для каждого приложения.

Значение по       50 курсоров.
умолчанию

Область изменения От 5 до 255.
значений

Когда менять      Если вы хотите снизить количество парсингов, выполняемых
                  вашим приложением, увеличьте количество курсоров. Количество
                  парсингов можно видеть при выполнении SQLтрассировки.

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

                                   -- 106 --



Ссылки            Инструкция программиста по пекомпилятору ОРАКЛа, Справочник
                  разработчика SQL*FORMS, раздел "Контекстные области и
                  курсоры" в главе 3.

        PROCESSES
        --------Д
Описание          Максимальное количество процессов пользователя операционной
                  системы, которое может работать с ОРАКЛом одновременно. Вы
                  можете изменить значение этого параметра от значения по
                  умолчанию. Это описано в приложении А.

Значение по       25 процессов.
умолчанию

Область изменения Минимальное количество = 5, максимальное зависит
значений          от операционной системы. Значение этого параметра включает 5
                  фоновых процессов плюс по одному на каждый параллельный
                  процесс.

Когда менять      Увеличивайте это значение когда увеличивается количество
                  параллельных пользователей.

Действие изменен- Если значение слишком низкое, ваша операционная
ного параметра    система не сможет по--ерживать требуемое количество
                  пользователей.

Ссылки            "Инструкция по начальной инсталляции СУБД" приложение А.


        ROLLBACK_SEGMENTS
        ----------------Д
Описание    Этот параметр есть список откатных сегментов, запрашиваемых
        ОРАКЛом на старте. Вы должны назвать один или более откатных сегментов
        в этом параметре. Экземпляр всегда требует, чтобы все сегменты были
        отображены в этом параметре, даже в том случае, если количество
        сегментов превышает список неоходимый для экземпляра (исползуйте
        TRANSACTIONS/ TRANSACTIONS_PER_ROLLBACK_SEGMENT).  Сегменты могут быть
        созданы с помощью или без помощи ключевого слова PUBLIC.  Никогда не
        определяйте откатный сегмент SYSTEM как значение этого параметра.
        После инсталляции вы должны создать хотя бы один откатный сегмент в
        табличном пространстве SYSTEM в дополнение откатному сегменту SYSTEM до
        создания других объектов базы данных.  Вам может понадобиться
        определить нужды вашего приложения, когда вы специфицируете ваши
        откатные сегменты во время инсталляции. Для информации обратитесь к
        приложению А "Инструкция по начальной инсталляции СУБД".

Значение по       ноль
умолчанию

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

Когда менять      Когда есть конфликт откатных сегментов и нужно добавить еще
                  откатных сегментов, вы должны добавить их имена к этому
                  параметру.


                                   -- 107 --



Действие изменен- Добавление имени нового откатного сегмента разрешает ОРАКЛу
                  получить новый откатный сегмент при следующем старте ОРАКЛа.

Ссылки            Приложение А"Начальная инсталляция СУБД",INIT.ORA параметры
                  TRANSACTIONS и TRANSACTIONS_PER_ROLLBACK _SEGMENT в
                  Руководстве администратора базы данных ОРАКЛ.


        ROW_LOCKING
        ----------Д
Описание          Используйте этот параметр совместно с INIT.ORA параметром
                  SERIALIZABLE,установленным в FALSE, чтобы установить
                  блокировку на уровне записи в значение по умолчанию.

                  Для СУБД ОРАКЛ версии 6.0 с опцией процесса транзакции
                  используйте ALWAYS для этого параметра, чтобы получить
                  блокировку на уровне записи во время заполнения таблицы.

                  Для СУБД ОРАКЛ версии 6.0 без опции процесса транзакции
                  используйте INTENT для этого параметра, чтобы получить
                  блокировку на уровне записи в SELECT FOR UPDATE. Табличные
                  блокировки используются в других случаях.
                  Если вы имеете опцию выполнения транзакций, DEFAULTE означает
                  ALWAYS. Если у вас нет опции выполнения транзакций, DEFAULTE
                  означает INTENT.

Значение по       DEFAULTE
умолчанию

Область изменения DEFAULTE/ALWAYS/INTENT
значений

Когда менять      Когда вам нужно использовать блокировку на уровне записи или
                  на уровне таблицы.

Действие изменен- ALWAYS - блокировка на уровне записи. INTENT -
ного параметра    блокировка на уровне таблицы, когда выполняются UPDATE,INSERT
                  или DELETE.

Ссылки          "Настройка SQL операторов и приложений" глава 2, SERIALIZABLE.


        SEQUENCE_CACHE_ENTRIES
        ----------------------
Описание    Установите количество элементов, определяющих последовательности,
            которые могут быть в SGA.  Каждый элемент в КЭШе содержит одну
            последовательность и вам нужно один элемент КЭШа для каждой
            последовательности SEQUENCE, работающей параллельно. SEQUENCE КЭШ
            достаточен по размерам для размещения всех последовательностей,
            используемых одновременно вашими приложениями базы данных.

            Если значение SEQUENCE_CACHE мало будет происходить больше
            вводов/выводов.

            Заметьте,что КЭШ, определяющий последовательность, отличается от
            CACHE/NOCACHE опции в операторе CREATE SEQUENCE. Этот параметр
            определяет как много последовательностей может быть кэшировано.


                                   -- 108 --



            CREATE SEQUENCE определяет как много кэшированных последовательнос
            тей будет использовано до повторного обращения к диску, чтобы
            распределить следующее количество.

            Последовательности, которые созданы спомощью оператора CREATE
            SEQUENCE NOCACHE не размещаются в КЭШе, определяющем последователь
            ность, как последовательности, которые были записаны из словаря при
            каждом использовании.  Вы можете изменить значение этого параметра
            от значения по умолчанию, установленного при инсталляции СУБД ОРАКЛ
            версии 6.0. Это описано в приложении А.

Значение по       10 последовательностей.
умолчанию

Область изменения От 10 до 32000
значений

Когда менять      Если приложение использует больше 10 последовательностей.

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

Ссылки            "Изменение значений INIT.ORA параметров" в приложение А,
                  глава 5 руководства администратора базы данных ОРАКЛ.


        SERIALIZABLE
        ------------
Описание          Совместно с параметром ROW_LOCKING этот параметр поведение
                  блокировок. Когда SERIALIZABLE = TRUE, запрашивается
                  блокировка во время чтения на уровне таблицы, предотвращая
                  изменения пока выполняется запрос. Это операция предлагает
                  повторные чтения и дает гарантию, что одинаковые данные в
                  одно время имеют одно и тоже значение.

Значение по       Для СУБД ОРАКЛ версии 6.0 с опцией выполнения
умолчанию         транзакций значение по умолчанию FALSE для максимального
                  параллелизма.

Область изменения FALSE/TRUE
значений

Когда менять      Когда запрашивается повторное чтение, измените это значение
                  на TRUE и ROW_LOCKING на INTENT.

Действие изменен- Блокируется таблица вместо записи и доступно
нного параметра   преобразование.

Ссылки         "Настройка SQL операторов и приложений" глава 2, ROW_LOCKING.


        SORT_AREA_SIZE
        --------------
Описание          Размер в байтах памяти, которая предназначена для сортировки.
                  Это значение можно изменить от значения по умолчанию, которое
                  устанавливается при инсталляции СУБД ОРАКЛ версии 6.0. Это
                  описано в приложении А.

                                   -- 109 --



Значение по       Определяется операционной системой.
умолчанию

Область изменения Определяется операционной системой.
значений

Когда менять      Если были созданы большие индексы и достаточно оперативной
                  памяти, чтобы выделить для сортировки или, если требуется
                  сортировать большое количество записей (GROUP BY DISTINCT и
                  ORDER), тогда увеличение этого параметра улучшит выполнение.

Действие изменен- Снижается количество промежуточных действий,
ного параметра    которые выполняются до сортировки и уменьшается количество
                  I/O при сортировке.Как правило, большое значение этого
                  параметра эффективно прибольших сортировках. Этот параметр
                  определяет размер областей сортировки для всех процессов, но
                  это может быть причиной чрезмерного расходования памяти, если
                  установить его слишком большим.

Ссылки            Раздел "Настройка сортировок" в главе 6,"Начальная
                  инсталляция СУБД" приложение А.

SORT_SPACEMAP_SIZE
------------------
Описание          Размер в байтах сортировочного пространства в контекстной
                  области. Этот параметр помогает ОРАКЛу в управлении
                  пространство для промежуточных сортировок.

Значение по       Определяется операционной системой.
умолчанию

Когда менять      Не меняйте этот параметр.

Ссылки            Раздел "Настройка сортировок" в главе 6,
                  "Начальнальная инсталляция СУБД" в приложении А.


        SQL_TRACE
        --------Д
Описание          Разрешается возможность трассировки с командой ALTER SESSION.
                  Этот параметр предоставляет информацию по настройке, которая
                  может улучшить выполнение.

Значение по       FALSE
умолчанию

Область изменения FALSE/TRUE
значений

Когда менять      Когда выполняется трассировка.

Действие изменен- Когда это параметр TRUE, может произойти
параметра         перегрузка операционной системы. Таким образом, вам следует
                  этот параметр устанавливать в значение TRUE только для
                  получения статистик.

Ссылки         TIMED_STATISTICS,MAX_DUMP_FILE_SIZE,USER_DUMP_DEST Раздел
               "Установка INIT.ORA параметров для SQL трассировки" в главе 7.

                                   -- 110 --




        TIMED_STATISTICS
        ----------------
Описание          Возможность определения времени выполнения всех функций для
                  трассировки ( например CPU и полное время) и показ этого в
                  экранах SQL*DBA MONITOR.

Значение по       FALSE
умолчанию

Область изменения FALSE/TRUE
значений

Когда менять      Когда вы хотите получить время, показанное в статистиках.

Действие изменен- TRUE включает измерение времени. В это время
ного параметра    система работает с перегрузкой.

Ссылки            SQL_TRACE, раздел "Установка INIT.ORA параметров для SQL
                  трассировки в главе 7.


        USER_DUMP_DEST
        --------------
Описание          Определяет директорию, в которой записаны файлы трассировки
                  для пользовательских процессов. Этот параметр может
                  использоваться для направления вывода SQL трассировочной
                  статистики.

Значение по       Определяется операционной системой.
умолчанию

Область изменения Определяется операционной системой.
значений

Когда менять      Когда вы хотите записать ваши DUMP файлы в другую директорию.

Действие изменен- Отправляет DUMP файлы в специальную директорию.
ного параметра

Ссылки            Инструкция пользователя по инсталляции, раздел "Установка
                  INIT.ORA параметров для SQL трассировки" в главе 7.

KOAP Open Portal 2000