Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
TOLI
Cliente: Toli
Data da Emissão: 14/05/2021
Data da alteração:
Responsável: Christian Dênis Dalzochio | christian@dbcore.com.br
Marco Aurélio Boff| marco@dbcore.com.br
(54) 3222-0074
Responsável Cliente: Gilberto Santin| gilberto.santin@tolidistribuidora.com.br
(54) 3444-3500
Sumário
Escopo..........................................................................................................................................3
Programas....................................................................................................................................3
SQL...............................................................................................................................................3
Texto........................................................................................................................................3
Horários de execução...............................................................................................................3
Histórico de Execuções e Tempo..............................................................................................4
Tempo total no mês.................................................................................................................4
Número de execuções no mês.................................................................................................5
Tempo médio no mês...............................................................................................................5
Plano de Execução....................................................................................................................5
Planos base..............................................................................................................................6
SQL Profiles..............................................................................................................................6
SQL Tuning Advisor...................................................................................................................7
Otimização...................................................................................................................................8
Ganhos.......................................................................................................................................10
Conclusão...................................................................................................................................10
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
Escopo
Analisar o SQL ID 9npbbbv94su73 executado por diversas rotinas do Extrator Palms em virtude
de ser um grande consumidor de recursos do banco de dados.
Programas
select distinct module,action,machine from dba_hist_active_sess_history where sql_id in
('9npbbbv94su73');
SQL
Texto
select * from dba_hist_sqltext where sql_id='9npbbbv94su73';
Horários de execução
select to_char(sample_time,'RRRRMMDD HH24') DATA_HORA from
dba_hist_active_sess_history where sql_id in ('9npbbbv94su73') group by
to_char(sample_time,'RRRRMMDD HH24') order by 1 desc;
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
Histórico de Execuções e Tempo
SELECT b.begin_interval_time,
b.end_interval_time,
TRUNC(a.elapsed_time_delta/1000000) tempo_segundos,
a.rows_processed_delta,
a.EXECUTIONS_DELTA,
TRUNC((a.elapsed_time_delta/1000000)/(case when a.EXECUTIONS_DELTA = 0 then 1 else
a.EXECUTIONS_DELTA end),2) tempo_medio_por_exec
FROM dba_hist_sqlstat a,
dba_hist_snapshot b
WHERE a.snap_id =b.snap_id
AND b.begin_interval_time > to_date('01/04/2021 00:00','DD/MM/RRRR HH24:MI')
AND sql_id IN ('9npbbbv94su73')
ORDER BY b.begin_interval_time desc;
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
AND sql_id IN ('9npbbbv94su73')
ORDER BY b.begin_interval_time;
Plano de Execução
select * from table(dbms_xplan.display_cursor('9npbbbv94su73',1));
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
Planos base
SELECT sql_handle,
plan_name,ENABLED,ACCEPTED,FIXED,REPRODUCED,OPTIMIZER_COST,to_char(Created,'DD-
MON-YYYY HH24:MI:SS') Created,last_verified
FROM dba_sql_plan_baselines
WHERE signature IN ( SELECT exact_matching_signature FROM v$sql WHERE
sql_id='9npbbbv94su73')
order by accepted desc;
SQL Profiles
select p.name profile_name, p.created, p.task_exec_name,p.last_modified,p.status from
dba_sql_profiles p, dba_hist_sqlstat s where p.name=s.sql_profile and
s.sql_id='9npbbbv94su73';
Nenhum
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
SQL Tuning Advisor
select * from DBA_HIST_SNAPSHOT order by snap_id desc;
DECLARE
l_sql_tune_task_id VARCHAR2(100);
BEGIN
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
begin_snap => 130788,
end_snap => 134571,
sql_id => '9npbbbv94su73',
scope => DBMS_SQLTUNE.scope_comprehensive,
time_limit => 600,
task_name => '9npbbbv94su73_tuning_task_awr',
description => 'Tuning task for statement 9npbbbv94su73.');
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id);
END;
/
DECLARE
l_sql_tune_task_id VARCHAR2(100);
BEGIN
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
sql_id => '9npbbbv94su73',
scope => DBMS_SQLTUNE.scope_comprehensive,
time_limit => 600,
task_name => '9npbbbv94su73_tuning_task',
description => 'Tuning task for statement 9npbbbv94su73.');
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id);
END;
/
SELECT DBMS_SQLTUNE.report_tuning_task('9npbbbv94su73_tuning_task') AS
recommendations FROM dual;
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
Otimização
Com base na análise do plano de execução do SQL e do uso do STA, identificamos uma solução
de otimização para ele.
Atualmente ele vem fazendo um acesso full na tabela TNFX_XMLS, ponto onde o custo de
execução do SQL aumenta consideravelmente:
Através da análise dos filtros utilizados no SQL e da sugestão do STA, identificamos que o filtro
no campo DOWNLOAD_SEFAZ é um ponto ótimo para criação de um índice, pois o valor fixo ‘S’
representa uma minoria dos registros na tabela.
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
Os registros que se encaixam no filtro somam apenas 0,001% dos registros, ou seja, se torna
um filtro ótimo. Assim um índice no campo ("DOWNLOAD_SEFAZ") da tabela TNFX_XMLS
poderá resultar em um ótimo ganho.
ATUAL:
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br
APÓS CRIAÇÃO DO ÍNDICE “create index FOCCO3I.DBA_AJUSTE_20210514_01 on
FOCCO3I.TNFX_XMLS("DOWNLOAD_SEFAZ")TABLESPACE F3I_INDEX;”
Ganhos
Ganho de 26 vezes, ou seja, uma redução de 21.673 segundos para 833 segundos no mês.
Conclusão
Recomendamos fortemente a criação de um índice do campo ("DOWNLOAD_SEFAZ") da
tabela FOCCO3I.TNFX_XMLS, pois nossos testes mostraram um ganho considerável no SQL
utilizando-o.
Exemplo:
Rua Alfredo Chaves, 1208 – Sala 1701 – Exposição – Caxias do Sul/RS – CEP: 95020-460
(54) 3222 0074 (54) 3533 6155 | www.dbcore.com.br | comercial@dbcore.com.br