|Tabela 5. Variáveis de Desempenho
Nome da Variável | Sistema Operacional | Valores |
---|---|---|
Descrição | ||
DB2_BINSORT | Todos | Default=NO
Valores: YES ou NO |
Permite um novo algoritmo de ordenação que reduz o tempo da CPU e o tempo
decorrido de ordenações. Esse novo algoritmo estende a técnica de
ordenação de números inteiros extremamente eficiente do DB2 UDB para todas
ordenações de tipos de dados, como BIGINT, CHAR, VARCHAR, FLOAT e DECIMAL,
assim como combinações destes tipos de dados. Para ativar esse novo
algoritmo, utilize o seguinte comando:
db2set DB2_BINSORT = yes | ||
DB2_BLOCK_BASED_BP | Solaris | Default=None
Valores: dependente de parâmetros |
Especifica os valores necessários para criar uma área de blocos em um
conjunto de buffers. O ID do conjunto de buffers é necessário e pode
ser visto na coluna BUFFERPOOLID da exibição de catálogo do sistema
SYSCAT.BUFFERPOOLS. O número de páginas a serem alocadas no
conjunto de buffers para a E/S baseada em bloco deve ser
fornecido. O número de páginas a serem incluídas em um bloco é
opcional, com um valor padrão de 32.
O formato para a utilização dessa variável de registro é: DB2_BLOCK_BASED_BP=BUFFER POOL ID,BLOCK AREA SIZE,[BLOCK SIZE];... Vários conjuntos de buffers podem ser definidos para "com base em bloco" utilizando-se a mesma variável com ponto-e-vírgula separando as entradas. O valor para BLOCK SIZE pode variar de 2 a 256. Se o BLOCK SIZE não for fornecido, o padrão utilizado é 32. Se o BLOCK AREA SIZE especificado for maior que 98% do tamanho total do conjunto de buffers, o conjunto de buffers não se baseará em bloco. É interessante que sempre se tenha alguma parte do conjunto de buffers na área baseada em página do conjunto de buffers porque há a possibilidade de que páginas individuais sejam requeridas mesmo se a maior parte da E/S no sistema for de pré-busca em seqüência. Se o valor especificado para BLOCK AREA SIZE não for um múltiplo de BLOCK SIZE, ele será reduzido para o limite mais próximo do tamanho do bloco. Para obter mais informações sobre E/S baseada em bloco, consulte a seção 10.2.1, Conjunto de Buffers com Base em Bloco. | ||
DB2_NO_FORK_CHECK | UNIX | Default=OFF
Valores: ON ou OFF |
Quando essa variável está "ON", o processo cliente não se protegerá contra um aplicativo que faça cópia do processo a ser executado (chamado bifurcação). Quando a bifurcação ocorre, os resultados são imprevisíveis. Os resultados podem variar de nenhum efeito a alguns maus resultados, a algum código de erro sendo retornado, a um trap no aplicativo. Se você está certo de que seu aplicativo não bifurca e quer desempenho melhor, você deve mudar o valor dessa variável para "ON". | ||
DB2_MINIMIZE_LIST_PREFETCH | Todos | Default=NO
Valores: YES ou NO |
Pré-captura da lista é um método especial de acesso à tabela que envolve
recuperar os RIDS qualificados do índice, ordenando-os por número de página e,
em seguida, fazendo uma pré-captura das páginas de dados.
Às vezes o otimizador não tem informações precisas para determinar se a pré-captura da lista é um bom método de acesso. Isso pode ocorrer quando seletividades de predicados contêm marcadores de parâmetros ou de variáveis de host que impedem o otimizador de utilizar estatísticas de catálogo para determinar a seletividade. Essa variável de registro impedirá que o otimizador considere pré-captura de lista nessas situações. | ||
DB2_INLIST_TO_NLJN | Todos | Default=NO
Valores: YES ou NO |
Em algumas situações, o compilador de SQL pode reescrever um predicado de
lista IN para uma junção. Por exemplo, a seguinte consulta:
SELECT * FROM EMPLOYEE WHERE DEPTNO IN ('D11', 'D21', 'E21')pode ser escrita como: SELECT * FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO) WHERE DEPTNO = V.DNO Essa versão pode fornecer melhor desempenho se houver um índice em DEPTNO. A lista de valores seria acessada primeiro e juntada a EMPLOYEE com um loop aninhado, utilizando o índice para aplicar o predicado de junção. Às vezes o otimizador não tem informações precisas para determinar o melhor método de junção para a versão reescrita da consulta. Isso pode ocorrer se a lista IN contiver marcadores de parâmetros ou variáveis do host, que impeçam o otimizador de utilizar estatísticas para determinar a seletividade. Essa variável de registro fará com que o otimizador favoreça junções de loop aninhado para juntar a lista de valores, utilizando a tabela que contribui com a lista IN como a tabela interna da junção. |
|A variável de registro DB2_NEWLOGPATH2 está disponível para
|todos os sistemas operacionais. Uma nova variável,
|DB2_ROLLFORWARD_NORETRIEVE, foi introduzida. As informações corretas
|para as duas variáveis aparece abaixo.
|
|Uma nova variável, DB2_REDUCED_OPTIMIZATION, foi introduzida.
|
|Tabela 7. Variável de Registro Geral
Nome da Variável | Sistema Operacional | Valores |
---|---|---|
Descrição | ||
DB2_REDUCED_OPTIMIZATION | ALL | Default=NO
Valores: YES, NO ou qualquer número inteiro |
Essa variável de registro permite que você desative algumas das técnicas
de otimização utilizadas em níveis de otimização específicos. Se você
reduzir o número de técnicas de otimização utilizadas, reduzem-se tempo e
recursos utilizados durante a otimização.
Observe que a redução de otimização dinâmica no nível de otimização 5, como descrito em "Adjusting the Optimization Class", em Administration Guide: Performance, tem precedência sobre o comportamento descrito para o nível de otimização de exatamente 5 quando DB2_REDUCED_OPTIMIZATION é definido como YES, bem como sobre o comportamento descrito para a definição como inteiro. |