Anda di halaman 1dari 15

Proposta tcnico-comercial

ANLISE DE DESEMPENHO BANCO DE DADOS ORACLE 11 G


A/C KEYSON GILVANNE DE OLIVEIRA NETO
NOVO RIO COMRCIO DE VEICULOS, SERVIOS E PEAS LTDA

Contedo
Institucional
Objetivo
Qualificao da necessidade
Forma de trabalho
Diagnstico atual
Sistema operacional
Banco de Dados
Consideraes e exemplos de recomendaes
Prazos e equipe
Condies de fornecimento

Jose Eduardo Desenv. de Software LTDA


A Jos Eduardo Desenvolv. de Software LTDA uma empresa brasileira especializada em
desempenho de aplicaes.
YAMAN uma empresa brasileira especializada no Gerenciamento de Desempenho de
Aplicaes.
Nossa versatilidade e comprometimento nos posicionam no mercado como provedora de
solues para as tpicas situaes de baixo desempenho e indisponibilidades de TI, garantindo
o rpido restabelecimento do servio e continuidade do negcio.

Nascida da unio de 2 profissionais que somam mais de 20 anos de experincia neste


segmento, a Jos Eduardo Desenv. de Software tem como diferenciais:

Estrutura enxuta, que garante menor custo e maior agilidade;


Independncia e iseno, pois no representamos nenhum vendor de hardware ou
ferramenta;
Orientao proatividade;
Capacidade de traduzir o tecniqus em linguagem executiva.

J tendo atuado com xito em vrios segmentos da economia, principalmente nos setores
Bancrio e Telecomunicaes, nos sentiremos honrados em pod-los apoiar em mais esta

Objetivo
Este documento descreve os termos tcnicos e comerciais para prestao de servios de
Anlise de Desempenho de Banco de Dados 11G para a Novo rio Comrcio de Veculos,
servios e peas Ltda.
.

Qualificao da necessidade
A Novo rio Comrcio de Veculos, servios e peas LTDA necessita de uma anlise de
desempenho para seu Sistema de Banco de Dados Oracle 11g release 11.2.0.1 que vem
apresentando lentido e em alguns momentos ficando indisponvel para os usurios finais. O
servidor e BD que sero analisados contm as seguintes configuraes:

8 GB RAM

100 GB disco

Windows server 2008 R2 Standard (64 Bits)

Oracle 11 G (Release 11.2.0.1) Novorio

Forma de trabalho
Instrumentao do servidor

Foi realizado em 02/Julho/2015 a instrumentao do servidor de Banco de Dados com as


seguintes ferramentas: Statspack e Perfmon.

Diagnstico

Realizado em 03/Julho/2015, onde foi analisado os indicadores coletados e documentado os


problemas encontrados.

Anlise e elaborao das sugestes de melhoria


Anlise das informaes geradas no item anterior identificando as oportunidades de
melhorias que sero aplicadas diretamente no Banco de Dados e no Servidor, afim de,
atingirmos a estabilidade do ambiente.
Implementao e documentao
Implementao das oportunidades de melhoria encontradas para o servidor e banco de
dados e a documentao das atividades realizadas.

Soluo proposta
Acompanhamento e monitoramento
Manter os monitoramentos habilitados realizando um comparativo do consumo de recursos:
Antes e Depois das Implementaes realizadas.

Diagnstico atual (Banco de Dados)


Wait Events: o retrato comportamental da base de dados

Nos mostra claramente atravs dos eventos Enq: TM Contention (locks), Read by other session (Concorrncia
na consulta de registros hot blocks), direct path read (muitas operaes de ordenao), log file sync e db file
scattered read (muitas operaes de I/O)

Redo log Switches

12 % abaixo do recomendado troca de 15


em 15 min, conforme manual

Diagnstico atual (Banco de Dados)


Alert.log: anlise do arquivo de registro de logs de toda a base de dados que contm
dois erros principais

ORA-01555 Snapshot too old (erro na parametrizao do banco de dados e por falta de commits em alguns
sqls da aplicao)

Freezings

ORA-00060 Deadlock detected (erro da aplicao, possvel


encontrarmos
esto
Congelamento
da baseasdeoperaes
dados por que
falta de
ocasionando este problema) para posterior tratamento

redologs inativos em alguns momentos por 15


segundos, falha grave que pode alm de
congelar, derrubar a base

Consideraes e exemplos (Statspack collector)


TOP SQLS ordenados por Tempo de CPU (SQL 1: demora 1h53 e ocupa 55 min de CPU)
CPU
Elapsd
Time (s)
Time (s) Buffer Gets
---------- ---------- --------------3328.86
6820.41
28,007,342
Module: crmPrem.exe
Select a.cod_empresa, a.desc_evento, b.cod_grupo, b.desc_tipo_ev
ento, a.cod_evento, c.andamento, a.data_evento, a.data_novo_
contato, a.tempo, nvl(a.data_novo_contato, a.data_evento) as d
ata_evento_atual, a.responsavel_pelo_evento,a.responsavel_orig
CPU
Elapsd
Time (s)
Time (s) Buffer Gets
---------- ---------- --------------2068.67
2643.25
604,001
Module: DBMS_SCHEDULER
INSERT INTO NBS_LOG(LOG_ID, DATAHORA, USUARIO, ESQUEMA, TABELA,
CAMPO, ROW_ID, OPERACAO, OLD_VALUE, NEW_VALUE, PROGRAMA) SELECT
SEQ_NBS_LOG.NEXTVAL, C1.TIMESTAMP DATAHORA, NVL(RETORNAR_VALOR_D
A_LISTA(C1.SESSION_INFO, 'CLIENT_INFO'), C1.USERNAME) USUARIO, :
CPU
Elapsd
Time (s)
Time (s) Buffer Gets
---------- ---------- --------------828.12
911.75
97,277,887
Module: NFSeService.exe
SELECT
A.ID_MOVIMENTO,
A.TIPO_RPS,
A.SERIE_RPS,
A.SERIE_NFSE,
A.NUMERO_RPS,
A.NUMR_CNPJ,
A.ID_EMPRES
A,
A.XML_NOTA,
A.XML_RETORNO,
A.STATUS_IMPRESSAO,
A.DATA_RECEBIMENTO,
A.DATA_PROCESSAMENTO,
A.TIPO_AMBIE

Consideraes e exemplos (Statspack collector)


TOP SQLS ordenados por Tempo de CPU (SQL 1: demora 1h53 e ocupa 55

SELECT
a.cod_empresa,
a.desc_evento,
min de
CPU)
b.cod_grupo,
b.desc_tipo_evento,
a.cod_evento,
c.andamento,
a.data_evento,
a.data_novo_contato,
a.tempo,
nvl(a.data_novo_contato, a.data_evento) AS data_evento_atual,
a.responsavel_pelo_evento,
a.responsavel_original,
decode(nvl(a.cod_cliente,1),1, a.nome_cliente_avulso, j. nome) nome_cliente,
b.eh_fluxo_loja,
b.eh_Test_drive,
f.desc_fechamento,
f.tipo_fechamento,
a.status,
a.fluxo_foi_preferencia,
a.Tem_recado,
k.desc_motivo Motivo_perda,
m.descricao_descarte
FROM crm_eventos a, crm_eventos_tipo b,
crm_andamento c, crm_tipo_fechamento f,
cliente_diverso j, crm_motivo_perdas k,
crm_descartes m
WHERE trunc(nvl(a.data_novo_contato, a.data_evento)) = :1
AND a.cod_empresa = COALESCE(NULLIF(TO_NUMBER(:2), 0), a.cod_empresa)
AND a.cod_tipo_evento = b.cod_tipo_evento
AND a.cod_tipo_fechamento = f.cod_tipo_fechamento (+)
AND a.cod_andamento = c.cod_andamento
AND a.cod_cliente = j.cod_cliente (+)
AND (b.eh_fluxo_loja = 'S OR b.eh_Test_drive = 'S')
AND a.cod_motivo_perda =k.cod_motivo_perda(+)
AND a.cod_descarte = m.cod_descarte(+)
ORDER BY data_evento_atual

Plano de execuo: forma de acesso aos dados


-------------------------------------------------------------------------| Id | Operation
| Name
| Rows |
-------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
375 |
|
1 | SORT ORDER BY
|
|
375 |
|
2 |
NESTED LOOPS OUTER
|
|
375 |
|* 3 |
HASH JOIN RIGHT OUTER
|
|
375 |
|
4 |
TABLE ACCESS FULL
| CRM_DESCARTES
|
22 |
|* 5 |
HASH JOIN RIGHT OUTER
|
|
375 |
|
6 |
TABLE ACCESS FULL
| CRM_MOTIVO_PERDAS
|
16 |
|* 7 |
HASH JOIN RIGHT OUTER
|
|
375 |
|
8 |
TABLE ACCESS FULL
| CRM_TIPO_FECHAMENTO |
3 |
|* 9 |
HASH JOIN
|
|
375 |
|* 10 |
TABLE ACCESS FULL
| CRM_EVENTOS_TIPO
|
13 |
| 11 |
MERGE JOIN
|
| 1682 |
| 12 |
TABLE ACCESS BY INDEX ROWID| CRM_ANDAMENTO
|
14 |
| 13 |
INDEX FULL SCAN
| SYS_C0012177
|
14 |
|* 14 |
SORT JOIN
|
| 1682 |
|* 15 |
TABLE ACCESS FULL
| CRM_EVENTOS
| 1682 |
| 16 |
TABLE ACCESS BY INDEX ROWID
| CLIENTE_DIVERSO
|
1 |
|* 17 |
INDEX UNIQUE SCAN
| SYS_C0011318
|
1 |
--------------------------------------------------------------------------

O que d pra melhorar:


Leitura integral na tabela CRM_EVENTOS
que possui mais de 500 mil linhas, para
acessar apenas 1600 linhas ( < 3 %) dos
registros
Criar um ndice baseado em funo com
as colunas data_novo_contrato e data_evento

Consideraes e exemplos (Statspack collector)


Backup e Arquivos de Dados

Todos no mesmo disco (esto com algum nvel de Raid ?)

O correto para essa mquina ter no mnimo 3 discos (c, d e f), por exemplo

Control Files: arquivos de controle da base de dados, essencial para restore em caso de desastre
o correto ter 3 arquivos e em discos distintos

NAME

TYPE

VALUE

control_files

string

C:\APP\ADMINISTRADOR\ORADATA\N OVORIO\CONTROL01.CTL,

C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\CONTROL02.CTL

Redolog files: Redologs tambm todos no mesmo disco, novamente essencial para restore
incremental at a data de um crash.

GROUP# STATUS TYPE


MEMBER
---------- ------- ------- ------------------------------------------------1
ONLINE C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\REDO01.LOG
2
ONLINE C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\REDO02.LOG
3
ONLINE C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\REDO03.LOG
3
ONLINE C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\REDO03B.LOG
2
ONLINE C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\REDO02B.LOG
1
ONLINE C:\APP\ADMINISTRADOR\ORADATA\NOVORIO\REDO01B.LOG

Prazos e equipe
Equipe: (Fase de Anlise paralelizada)
Jos Eduardo Fiamengui Jnior
Rafael Trevisan

ID

Atividade
Anlise de desempeno Banco de Dados Oracle
1 11G
2 - Instrumentar de ambiente
3 - Realizar diagnstico
4 - Analisar e elaborar sugestes de melhoria
5 - Implementar as melhorias de banco de dados
- Repassar as melhorias relacionadas a alteraes na
6 aplicao

7 Confeccionar entregvel

Esfor
o
(hora
s)
68
4
8
40
24
24
16

Incio
02/07/2015
02/07/2015
03/07/2015
05/07/2015
08/07/2015

Fim

Depend
ncia

13/07/2015
03/07/2015
03/07/2015
09/07/2015
10/07/2015

1
2
3
4

08/07/2015 10/07/2015
11/07/2015 13/07/2015

4
7

Condies comerciais

Investimento
Valor: R$ 6.000 (seis mil reais), que podero ser divididos em at 3 parcelas mensais
de 2.000,00 (dois mil reais)

Consideraes Gerais
O incio previsto das atividades de at 2 dias teis aps o aceite formal
(assinaturas) da proposta;
A Jose Eduardo Desenv. de Sofware LTDA somente poder iniciar o trabalho perante a
Ordem de Compra emitida.

Obrigado
Jos Eduardo Fiamengui Jnior
Consultor de tecnologia
Contatos: jeduardounicamp@gmail.com
(11) 9.5999-1001

Anda mungkin juga menyukai