Замечания по выпуску


|10.5 Переменные реестра DB2 и переменные среды

|10.5.1 Corrections to Performance Variables


|

|Табл. 5. Переменные производительности

Имя переменной Операционная система Значения
Описание
DB2_BINSORT Все По умолчанию=NO

Значения: YES или NO

Включает новый алгоритм сортировки, уменьшающий использование процессорного времени и общее время сортировок. Этот алгоритм распространяет максимально эффективную технику сортировки целых чисел DB2 UDB на все сортируемые типы данных, такие, как BIGINT, CHAR, VARCHAR, FLOAT и DECIMAL, а также на сочетания этих типов. Чтобы включить этот новый алгоритм, используйте команду:
db2set DB2_BINSORT = yes
DB2_BLOCK_BASED_BP Операционная среда Solaris По умолчанию=Отсутствует

Значения: зависят от параметров

Задает значения, определяющие создание блочной области внутри пула буферов. Нужно задать ID пула буферов, который можно узнать в столбце BUFFERPOOLID производной таблицы системного каталога SYSCAT.BUFFERPOOLS. Необходимо задать число страниц, выделяемых в пуле буферов для блочного ввода-вывода. Число страниц в блоке задавать не обязательно; по умолчанию это число равно 32.

Формат этой переменной реестра:

DB2_BLOCK_BASED_BP=ID пула буферов,размер области блока,[размер блока];...

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

Размер блока может быть от 2 до 256. Если BLOCK SIZE не задан, по умолчанию используется значение 32.

Если заданный размер блочной области превышает 98% общего размера пула буферов, в этом пуле буферов не будет выделена блочная область. Всегда разумно оставлять некоторую часть пула буферов для страничной области, так как может потребоваться чтение отдельных страниц, даже если большая часть операций ввода-вывода в системе - это последовательная предварительная выборка. Если заданное значение размера блочной области не кратно размеру блока, в качестве размера блочной области используется меньшее значение - ближайший размер целого числа блоков. Дополнительную информацию о блочном вводе-выводе смотрите в разделе 10.2.1, Блочный пул буферов.

DB2_NO_FORK_CHECK UNIX По умолчанию=OFF

Значения: ON или OFF

Если эта переменная имеет значение "ON", процесс клиента не будет запрещать прикладной программе запускать копии этого процесса (это называется ветвлением). Ветвление может дать непредсказуемые результаты. Оно может не влиять на результаты или же давать некоторые неправильные результаты, может приводить к сообщениям об ошибках или к прерываниям работы прикладной программы. Если вы уверены, что прикладная программа не вызывает ветвления, и хотите улучшить производительность, измените значение этой переменной на "ON".
DB2_MINIMIZE_LIST_PREFETCH Все По умолчанию=NO

Значения: YES или NO

Предварительное чтение списка - это особый метод доступа к таблице, предусматривающий получение нужных RID из индекса, их сортировку по номеру страницы и затем предварительную выборку страниц данных.

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

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

DB2_INLIST_TO_NLJN Все По умолчанию=NO

Значения: YES или NO

В некоторых ситуациях компилятор SQL может переписывать предикат списка IN как объединение. Например, следующий запрос:
    SELECT *
     FROM EMPLOYEE
     WHERE DEPTNO IN ('D11', 'D21', 'E21')
	  
можно переписать так:
    SELECT *
     FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO)
     WHERE DEPTNO = V.DNO
	  

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

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

|10.5.2 Новые параметры для переменной реестра DB2BPVARS

|Для переменной реестра DB2BPVARS поддерживаются два новых параметра: |NUMPREFETCHQUEUES и PREFETCHQUEUESIZE. Эти параметры поддерживаются на |всех системах и могут улучшить предварительную выборку данных для пула |буферов. Рассмотрим, например, последовательную предварительную |выборку, при которой PREFETCHSIZE разделен на PREFETCHSIZE/EXTENTSIZE |требований предварительной выборки. В этом случае требования помещаются |в очереди предварительной выборки, из которых серверы ввода/вывода выполняют |асинхронный ввод/вывод. По умолчанию DB2 поддерживает одну очередь |размера max(100, 2*NUM_IOSERVERS) для каждого раздела базы данных. В |некоторых средах производительность может вырасти, если задать большее число |очередей и/или очереди другого размера. Число очередей предварительной |выборки должно быть равно по крайней мере половине числа серверов |ввода-вывода. Задавая эти параметры, надо учесть также другие |параметры, такие как PREFETCHSIZE, EXTENTSIZE, NUM_IOSERVERS, размер пула |буферов и DB2_BLOCK_BASED_BP, а также характеристики рабочей нагрузки, |например, текущее число пользователей.

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

|Табл. 6. Сводка новых параметров

Имя параметра Значение по умолчанию Допустимый диапазон
NUMPREFETCHQUEUES 1 от 1 до NUM_IOSERVERS

если задается значение меньше 1, устанавливается 1

если задается значение больше NUM_IOSERVERS, устанавливается NUM_IOSERVERS

PREFETCHQUEUESIZE max(100,2*NUM_IOSERVERS) от 1 до 32767

если задается значение меньше 1, устанавливается значение по умолчанию

если задается значение больше 32767, устанавливается 32767

|10.5.3 Исправления и добавления в разделе Разные переменные реестра

| | |

|Переменная реестра DB2_NEWLOGPATH2 доступна для всех |операционных систем. Введена новая переменная - |DB2_ROLLFORWARD_NORETRIEVE. Ниже представлена правильная информация |для обеих этих переменных.
|

|Табл. 7. Разные переменные

Имя переменной Операционная система Значения
Описание
DB2_NEWLOGPATH2 ALL По умолчанию=NO

Значения: YES или NO

Этот параметр позволяет задать, будет ли использоваться вторичный путь для двойной регистрации в журналах. Используемый путь получается добавлением "2" к текущему значению параметра конфигурации базы данных logpath.
DB2_ROLLFORWARD_NORETRIEVE ALL По умолчанию=(не задана)

Значения: YES или NO

Если включен параметр конфигурации базы данных USEREXIT, при операциях повтора транзакций файлы журналов автоматически получаются из архива. Переменная DB2_ROLLFORWARD_NORETRIEVE позволяет задать, что операции повтора транзакций не должны получать файлы журналов из архива. По умолчанию эта переменная отключена. Задайте для нее значение YES, если не нужно, чтобы операции повтора транзакций автоматически получали файлы журналов. Например, задайте для нее значение YES в конфигурации горячего резервирования, чтобы созданные какой-либо неправильной программой записи журнала не испортили резервную систему.

|10.5.4 Исправления и добавления в разделе Основные переменные реестра

| |

|Введена новая переменная - DB2_REDUCED_OPTIMIZATION.
|

|Табл. 8. Основные переменные реестра

Имя переменной Операционная система Значения
Описание
DB2_REDUCED_OPTIMIZATION ALL По умолчанию=NO

Значения: YES, NO или любое целое число

Эта переменная реестра позволяет запретить некоторые методы оптимизации, используемые на конкретных уровнях оптимизации. При сокращении числа используемых методов оптимизации уменьшаются также затраты времени и ресурсов на выполнение оптимизации.
Прим.:
Хотя затраты времени и ресурсов на оптимизацию могут быть уменьшены, возрастает риск получения неоптимального плана доступа к данным.
  • Если задано значение NO

    Оптимизатор не меняет методы оптимизации.

  • Если задано значение YES

    При уровне оптимизации 5 (значение по умолчанию) или меньше оптимизатор отключает некоторые методы оптимизации, которые расходуют много времени и ресурсов, но редко позволяют улучшить план доступа.

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

  • Если задано целочисленное значение

    Эффект тот же, что и для значения YES, но для динамически подготовленных запросов при уровне оптимизации 5 дополнительно задается следующее поведение оптимизатора: Если общее число объединений в каком-либо блоке запроса превышает заданное значение, оптимизатор переключается на использование "жадного" перебора методов объединения вместо того, чтобы отключать дополнительные методы оптимизации, как описано выше для уровня оптимизации 5; тем самым запрос будет оптимизирован с уровнем, аналогичным уровню оптимизации 2.

    Информацию о "жадном" и динамическом переборе методов объединения смотрите в разделе Стратегии поиска для выбора оптимального объединения книги Administration Guide: Performance.

Имейте в виду, что динамическое снижение оптимизации на уровне 5, описанное в разделе Настройка класса оптимизации книги Руководство администратора: Производительность, имеет преимущество перед поведением, описанным для уровня оптимизации ровно 5 и значения DB2_REDUCED_OPTIMIZATION, равного YES или целому числу.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]