Escolar Documentos
Profissional Documentos
Cultura Documentos
9iR1 a 11gR2
1
Ricardo Portilho Proni
ricardo@nervinformatica.com.br
Esta obra est licenciada sob a licena
Creative Commons Atribuio-SemDerivados 3.0 Brasil.
Para ver uma cpia desta licena, visite
http://creativecommons.org/licenses/by-nd/3.0/br/.
Se houvesse um parmetro que sempre deixasse o Oracle mais rpido, sem nenhum efeito
colateral, ele j viria habilitado.
Por algo chamar-se Storage, no quer dizer que ele no tenha problemas.
KSS (Keep t Simple, Stupid): a probabilidade de falha cresce linearmente com o aumento de
complexidade.
Experincia
ntuio
mpreciso
Tempo
Sorte
Recursos
6
Re!uisitos
7
TOP Tuning
Verificar maior consumidor de CPU;
Verificar o SQL agressor;
Alterar o SQL e esperar que o desempenho melhore;
Adicionar ndices e esperar que o desempenho melhore;
Se no melhorar, matar a sesso.
Se o desempenho no melhorar, voltar ao incio.
Verificar SGA;
Verificar PGA;
Verificar LOCKs;
Adicionar CPUs;
Melhorar o /O;
Adicionar Ns no RAC;
Voltar Backups;
Todo teu SELECT dever utilizar um ndice, para que ele seja rpido.
Utilizar um Concorde?
db_block_size
db_file_multiblock_read_count
memory_max_target
memory_target
sga_max_size
sga_target
pga_aggregate_target
buffer_pool_keep, buffer_pool_recycle
shared_pool_size, shared_pool_reserved_size
large_pool_size
java_pool_size
streams_pool_size
log_buffer
fast_start_mttr_target
log_checkpoint_interval, log_checkpoint_timeout
33
Par3metros elementares
4ands O+ 5
Par3metros elementares
34
SQL Statement
Session
nstance
36
7ranularidades de n'lise
37
"en'rios de n'lise
H lentido agora
Statspack / AWR
38
8erramentas de n'lise
Administrative
Application
Cluster
Commit
Concurrency
Configuration
dle
Network
Other
Queueing
Scheduler
System /O
User /O
39
&ait "lasses
)imita9es da O&%
40
No um monitoramento End-to-End
Bugs
mprecises
41
)imita9es0 O&%
Sem histrico
42
)imita9es0 :ie;s
Muitos dados
Altssima granularidade
Desempenho
Correlao de informaes
Sesses PARALLEL
Baixa granularidade
Apenas histrico
44
)imita9es0 .tats,ac# > &R
4ands O+ 5
D?namic Performance :ie;s
45
V$SYSTEM_EVENT
V$SESSON_EVENT
V$SESSON_WAT
buffer busy
free buffer
control file single write / control file parallel write / control file sequential read
enqueue
free buffer
log file parallel write / log file single write / log file sequential read
0 = Standard Trace
4 = Bind Variables
8 = Wait States
Em toda a instncia
Em sua sesso
Em outra sesso
57
ti*ar 1<tended .=) Trace
58
Detalhes 1<tended .=) Trace
*** 2010-03-22 11:43:12.276
WAT #9: nam='db file scattered read' ela= 183330 file#=4 block#=9124 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 2528 file#=4 block#=9150 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 170358 file#=4 block#=9176 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 96261 file#=4 block#=9202 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 1669 file#=4 block#=9228 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 26055 file#=4 block#=9254 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 4760 file#=4 block#=9280 blocks=26 obj#=74574
WAT #9: nam='db file scattered read' ela= 108783 file#=4 block#=9306 blocks=26 obj#=74574
tim=1269268992840594
=====================
59
t#,rof
No um monitoramento End-to-End
Bugs
mprecises
Muitos dados
Altssima granularidade
Desempenho
Correlao de informaes
Sesses PARALLEL
CURSOR_SHARNG
DB_FLE_MULTBLOCK_READ_COUNT
OPTMZER_NDEX_CACHNG
OPTMZER_NDEX_COST_ADJ
OPTMZER_MODE
PGA_AGGREGATE_TARGET
STAR_TRANSFORMATON_ENABLED
80
%nfluenciando o OtimiCador
1<,licao0 Durante FTS, leituras de DATAFLEs esperam pelo /O.
"ausa0 DB_CACHE_SZE insuficiente, FTS desnecessrio ou lentido de /O
"orreo0 Aumente o DB_CACHE_SZE, elimine o FTS, ou melhore o
mecanismo de /O.
P10 Nmero do DATAFLE.
P20 Bloco inicial.
PI0 Quantidade de blocos.
81
db file scattered read
1<,licao0 Durante a leitura de um bloco, leituras de DATAFLEs esperam pelo
mecanismo de /O.
"ausa0 DB_CACHE_SZE insuficiente, leitura desnecessria ou lentido de /O
"orreo0 Aumente o DB_CACHE_SZE, elimine a leitura desnecessria, ou
melhore o mecanismo de /O.
P10 Nmero do DATAFLE.
P20 Bloco inicial.
PI0 Quantidade de blocos.
82
db file se!uential read
1<,licao0 Leitura / gravao entre DATAFLEs / TEMPFLEs e PGA.
"ausa0 PGA insuficiente, ou lentido de /O.
"orreo0 Aumente a PGA, ou melhore o mecanismo de /O.
P10 Nmero do arquivo (DATAFLE ou TEMPFLE).
P20 Bloco inicial.
PI0 Quantidade de blocos.
83
direct ,ath read > direct ,ath ;rite
1<,licao0 Mecanismo de fila ordenada do RDBMS.
"ausa0 Diversas, dependendo do tipo de fila.
"orreo0 Diversas, dependendo do tipo de fila.
P10 Tipo ou modo da enqueue.
P20 D1 (como na V$LOCK).
PI0 D2 (como na V$LOCK).
Problemas mais comuns0
TX, Transaction
shared pool
library cache
Row Chaining.
Migrated Rows.
EXTENTs.
110
8ragmentao
111
8ragmentao0 "O)1."1
112
8ragmentao0 "O)1."1
113
8ragmentao0 Ro; "haining
114
8ragmentao0 Ro; Migration
4ands O+ 5
D2M.GD:+"1DGR1&R%T1
115
116
)ab U610 D2M.GD:+"1DGR1&R%T1
bra uma sesso com o usu'rio ."OTT com .1T T%M%+7 O+0
ltere a sesso ,ara utiliCar o Rule 2ased O,timiCer0
SQL> ALTER SESSON SET OPTMZER_MODE=RULE;
1<ecute este .=) e anote seu tem,o de e<ecuo0
SQL> SELECT /*+ NDEX(T_ALAS,DX_T) */ COUNT(*) FROM T T_ALAS WHERE
OBJECT_NAME = 'T';
1<ecute este .=) e anote seu tem,o de e<ecuo0
SQL> SELECT COUNT(*) FROM T T_ALAS WHERE OBJECT_NAME = 'T';
"om o usu'rio .A.@ dP as ,ermiss9es necess'rias ,ara !ue o usu'rio
."OTT utiliCe o D2M.GD:+"1DGR1&R%T10
$ sqlplus / AS SYSDBA
SQL> GRANT EXECUTE ON DBMS_ADVANCED_REWRTE TO SCOTT;
SQL> GRANT CREATE MATERALZED VEW TO SCOTT;
117
)ab U620 D2M.GD:+"1DGR1&R%T1
+a sesso do usu'rio ."OTT@ e<ecute o D2M.GD:+"1GR1&R%T10
BEGN
SYS.DBMS_ADVANCED_REWRTE.DECLARE_REWRTE_EQUVALENCE (
NAME => 'PORTLHO_REWRTE',
SOURCE_STMT => 'SELECT /*+ NDEX(T_ALAS,DX_T) */ COUNT(*) FROM T T_ALAS WHERE
OBJECT_NAME = ''T''',
DESTNATON_STMT => 'SELECT COUNT(OBJECT_NAME) FROM T T_ALAS WHERE
OBJECT_NAME = ''T''',
VALDATE => FALSE,
REWRTE_MODE => 'TEXT_MATCH');
END;
/
1<ecute no*amente este .1)1"T e *erifi!ue seu tem,o de e<ecuo0
SQL> SELECT /*+ NDEX(T_ALAS,DX_T) */ COUNT(*) FROM T T_ALAS WHERE OBJECT_NAME = 'T';
Remo*a o R1&R%T1@ e<ecute no*amente o .1)1"T e *erifi!ue seu tem,o de
e<ecuo0
SQL> EXEC SYS.DBMS_ADVANCED_REWRTE.DROP_REWRTE_EQUVALENCE (NAME =>
'PORTLHO_REWRTE');
SQL> SELECT /*+ NDEX(T_ALAS,DX_T) */ COUNT(*) FROM T T_ALAS WHERE OBJECT_NAME = 'T';
Encontrar o SD na V$SESSON_WAT.
ORACLE_USER
SERVCE_NAME
CLENT_OS_USER
CLENT_PROGRAM
CLENT_MACHNE
MODULE_NAME
MODULE_NAME_ACTON
SERVCE_MODULE
SERVCE_MODULE_ACTON
"ontrole dos Recursos0
CPU
Sesses Ativas
Paralelismo
/O (>= 11gR1)
124
Resource Plan
125
Resource Plan
Mudanas de ,lanos0
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'PEAKTME';
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'OFF-PEAK';
Monitorao0
DBA_RSRC_CONSUMER_GROUP_PRVS
DBA_RSRC_PLANS
V$SESSON
V$RSRC_PLAN
V$RSRC_CONSUMER_GROUP
V$RSRC_SESSON_NFO
V$RSRC_PLAN_HSTORY
V$RSRC_CONS_GROUP_HSTORY
V$RSRCMGRMETRC
V$RSRCMGRMETRC_HSTORY
126
Resource Plan
)2 11 W Resource Plan
4ands On 5
127
nalise o cJdigo do ar!ui*o ResourcePlan6s!l6
ltere o ar!ui*o ,ara su,rir as necessidades de trPs ti,os de uso do banco
de dados0
Usurio SOE: OLTP, deve ter muita prioridade durante o dia, e pouca durante a noite.
Usuario HR: B, deve ter pouca pridoridade durante o dia e muita durante a noite.
Usurio SCOTT: s pode utilizar CPU que nenhum dos usurios acima estiver utilizando.
Outros: s podem utilizar CPU que nenhum dos usurios acima estiver utilizando.
128
)ab 1N61 W Resource Plan
Re*iso
129