Boa noite,
Ao gerar um plano de execução de um SQL, na leitura do plano, tem a seguinte informação:
- automatic DOP: skipped because of IO calibrate statistics are missing
-- Banco de dados versão 11.0.2.3
-- Banco novo, recém migrado de 10G.
No Metalink temos uma nota referente:
Automatic Degree of Parallelism in 11.2.0.2 (Doc ID 1269321.1)
Conforme o Metalink: "When PARALLEL_DEGREE_POLICY is set to AUTO, Oracle Database determines whether a statement should run in parallel based on the cost of the operations in the execution plan and the hardware characteristics."
Dessa forma, alterando PARALLEL_DEGREE_POLICY para MANUAL ou LIMITED, não resolveria essa necessidade de calibração com DBMS_RESOURCE_MANAGER.CALIBRATE_IO?
O Metalink recomenda realizar a "calibração" conforme a seguir:
SET SERVEROUTPUT ON
DECLARE
lat INTEGER;
iops INTEGER;
mbps INTEGER;
BEGIN
-- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat);
DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat);
DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
DBMS_OUTPUT.PUT_LINE ('latency = ' || lat);
dbms_output.put_line('max_mbps = ' || mbps);
end;
Além disso, há uma demora de 3 a 4x mais no tempo de execução do export full via expdp. Essa calibração teria alguma inferência?
-automatic DOP: skipped because of IO calibrate statistics
Re: -automatic DOP: skipped because of IO calibrate statistics
Se você está com PARALLEL_DEGREE_POLICY em AUTO, o Oracle Database que vai decidir quando utilizar paralelismo.
Para isto, o Oracle precisa conhecer melhor o I/O, daí a necessidade do DBMS_RESOURCE_MANAGER.CALIBRATE_IO.
Alterando o PARALLEL_DEGREE_POLICY para MANUAL, esta mensagem não irá mais aparecer, mas o paralelismo automático também não será utilizado. você terá que utilizar o paralelismo com HINT PARALLEL, ou com ALTER TABLE ... PARALLEL, indicando o grau de paralelismo.
Não encontrei referência se o expdp utiliza o paralelismo automático, esta seria uma das explicações para ele demorar mais sem o CALIBRATE_IO.
Fora o Automatic DOP, o CALIBRATE_IO é utilizado pelo Resource Manager. Se ele não está ativado por I/O, não irá interferir em mais nada.
Para isto, o Oracle precisa conhecer melhor o I/O, daí a necessidade do DBMS_RESOURCE_MANAGER.CALIBRATE_IO.
Alterando o PARALLEL_DEGREE_POLICY para MANUAL, esta mensagem não irá mais aparecer, mas o paralelismo automático também não será utilizado. você terá que utilizar o paralelismo com HINT PARALLEL, ou com ALTER TABLE ... PARALLEL, indicando o grau de paralelismo.
Não encontrei referência se o expdp utiliza o paralelismo automático, esta seria uma das explicações para ele demorar mais sem o CALIBRATE_IO.
Fora o Automatic DOP, o CALIBRATE_IO é utilizado pelo Resource Manager. Se ele não está ativado por I/O, não irá interferir em mais nada.
Re: -automatic DOP: skipped because of IO calibrate statistics
Obrigada pelo retorno.
Dúvida: Porque somente em algumas migração de 10g para 11g é solicitado calibração de IO com DBMS_RESOURCE_MANAGER.CALIBRATE_IO? seria pela mudança de configuração d hardware?
Sobre o expdp, abri um chamado no Metalink onde estou interagindo com eles.
Mais uma vez, Obrigada
Dúvida: Porque somente em algumas migração de 10g para 11g é solicitado calibração de IO com DBMS_RESOURCE_MANAGER.CALIBRATE_IO? seria pela mudança de configuração d hardware?
Sobre o expdp, abri um chamado no Metalink onde estou interagindo com eles.
Mais uma vez, Obrigada

Re: -automatic DOP: skipped because of IO calibrate statistics
Esqueci de mencionar um detalhe do CALIBRATE_IO.
No comando abaixo...
DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat);
... você está solicitando ao Oracle para verificar a velocidade, latência e vazão de seu I/O, e o informando que você possui 2 discos (1o parâmetro), e que o tempo máximo tolerado de latência é de 10 segundos (2o parâmetro). Os últimos 3 parâmetros do comando são de retorno, informando o número máximo de requisições de I/O que o sistema suporta, o número máximo de Megabytes por segundo suportado, e real latência média detectada.
No comando abaixo...
DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat);
... você está solicitando ao Oracle para verificar a velocidade, latência e vazão de seu I/O, e o informando que você possui 2 discos (1o parâmetro), e que o tempo máximo tolerado de latência é de 10 segundos (2o parâmetro). Os últimos 3 parâmetros do comando são de retorno, informando o número máximo de requisições de I/O que o sistema suporta, o número máximo de Megabytes por segundo suportado, e real latência média detectada.