TOUAMI Khaled
Plan
Structure d une base de donnes Oracle
Architecture technique dune base Oracle
System Global Area (SGA)
Fonctionnement
Optimisation
Statpack
TOAD
SGA
Processes
Base de donnes
Oracle
Dfinitions
Base de Donnes(database)
Ensemble de fichiers de donnes (data files), des fichiers de contrle(control files) et des fichiers
journaux de transactions (redo logs), formant la structure permanente d un serveur oracle.
Instance
Elle comprend la System Global Area (SGA), les processus d arrire-plan associs et les structures
correspondantes de mmoire partage. Elle est transitoire est cre chaque dmarrage d instance.
Processus SNPnnn
Processus Pnnn
Processus LCKnn
Library Cache
Redo-Log Buffer
DBWR
LGWR
SMON
PMON
CKPT
Processus ddi un
utilisteur
Processus ddi un
utilisateur
Dmarrage/arrt de linstance
Listener
Oracle Net
Fichiers de
donnes
Fichiers RedoLog
Fichiers de
contrle
Fichier Init.ora
Fichiers
Listener.ora
Rseau
ARCH
Programme
utilisateur
Programme
utilisateur
Archivage des
fichiers Redo-Log
Fichiers
TNSNAMES.
ORA
Architecture Technique
Mesure de performance : la mesure de la performance revient calculer les diffrents indicateurs ratios
d analyse correspondants aux diffrentes partis de la SGA.
7
Elle comprend :
Library cache : il contient le code SQL des instructions et les plans d excutions associs , les blocs
PL/SQL et des classes Java.
Dictionary cache : contient des mta donnes issues du dictionnaire de donnes dcrivant la structure
et la scurit de tous les objets inclus dans les instructions SQL rcemment utilises.
Paramtres :
SHARED_POOL_SIZE : Dfinit la taille du pool partag, en octets.
SHARED_POOL_RESERVED_SIZE : Rserve une part du pool partag pour des objets de grande
taille ( package, procdure, fonction).
Parse
1
User Process
2
3
Execute
Fetch (Select)
Server Process
Requte
utilisateur
SGA
PARSE :
Vrification de la syntaxe de l instruction SQL.
Ralisation de la rsolution d objets et les contrles de scurit pour l excution du code.
Construction de larbre danalyse
Dveloppement du plan d excution pour linstruction SQL.
EXECUTE :
Application du plan d excution.
Lecture des blocs de donnes du fichier en mmoire.
Manipulation des donnes en mmoire (Insert, Update, Delete).
FETCH : (select)
Renvoie des lignes au processus utilisateur.
10
11
Utilisation intense des ressources CPU, caus par des analyses excessives.
Erreur ORA-4031 : manque de place mmoire.
Mesures de performance
a)- library cache
La vue V$LIBRARYCACHE contient lensemble des informations relatives aux activits de la library cache
depuis le dernier dmarrage de l instance.
12
DESC V$LIBRARYCACHE
Nom de la colonne
Null?
------------------------------ -------NAMESPACE
GETS
GETHITS
GETHITRATIO
PINS
PINHITS
PINHITRATIO
RELOADS
INVALIDATIONS
DLM_LOCK_REQUESTS
DLM_PIN_REQUESTS
DLM_PIN_RELEASES
DLM_INVALIDATION_REQUESTS
DLM_INVALIDATIONS
Type
---VARCHAR2(15)
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
13
14
NAMESPACE
GETS
GETHITS
GETHITRATI
PINS
PINHITS
PINHITRATI
RELOADS
15
Recommandation : Si le library cache hit ratio < 85%, augmentez la valeur du paramtre SHARED_POOL_SIZE
16
Reload ratio : C est le pourcentage d excutions qui ont ncessit une nouvelle analyse.
Select sum(pins) "EXECUTIONS" , sum(RELOADS) "MISSES",
sum(RELOADS)/sum(pins) "RELOAD RATIO"
from v$librarycache
EXECUTIONS
MISSES
RELOAD RATIO
------------------ ---------------- ----------------------14069958
38637
,274606363
17
NAME
TYPE
LOADS
EXECUTIONS
SHARABLE_M
-------------------------------------------------------------------------------------------------------------------------------------NOMBRECLIENT
PROCEDURE
3
9
8070
COMMANDE_EXISTE
FUNCTION
2
17
13333
AFFICHER
PROCEDURE
3
61
9218
MAJOR
PROCEDURE
6
7
8335
Remarque : Lorsqu une procdure incluse dans un package est appele, c est l ensemble du package qui
charg en mmoire et analys.
18
Type
---NUMBER
VARCHAR2(11)
NUMBER
VARCHAR2(32)
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
19
20
21
1)-Fonctionnement
Les donnes sont crites en mmoire par blocs (si elles ne s y trouvent pas dj) avant de pouvoir tre
manipules en lecture ou en criture.
La quantit de mmoire disponible pour enregistrer ces blocs est limite, de telle sorte que des blocs
doivent tre remplacs par des blocs plus rcents en suivant un mcanisme de gestion appele algorithme
LRU.
Un bloc est dit dirty si son contenu a chang. Oracle n autorise pas de nouvelle donnes prendre
cette place, tant que ce contenu na pas t crit sur disque.
Une fois le bloc crit sur le disque, il devient disponible pour tre rutilis, il est dit free .
Exemple :
2)-Paramtres de configuration
DB_BLOCK_SIZE
DB_BLOCK_BUFFER
22
23
24
25
B)-Paramtres de configuration
LOG_BUFFER
26
27
Select name, value from V$SYSSTAT where name='redo log space requests'
NAME
VALUE
-----------------------------------------------------------------redo log space requests
64
28
STATPACK
Un outil de diagnostic.
Il enregistre un grand nombre de donnes relatives aux performances.
Calcul les ratios de performance.
Il enregistre dans un schma permettant une utilisation ultrieure
Possibilit de faire une comparaison avec les donnes d excutions antrieures.
Installation
Lancer le script $ORACLE_HOME/rdbms/admin/spcreate.sql (cration du schma statpack et de user PERFSTAT)
Excution
SQL> connect perfstat/perfstet
SQL> execute statspack.snap
Analyse des rsultat
SQl>@spreport
29
DB Id
----------204079298
Instance
---------ORCL
Inst Num
-------1
Start Id
End Id
Start Time
-------- -------- -------------------1
2 25-Sep-00 00:36:21
Cache Sizes
~~~~~~~~~~~
db_block_buffers:
8192
db_block_size:
2048
log_buffer:
163840
shared_pool_size:
15728640
Release
---------8.1.5.0.0
OPS
---NO
End Time
-------------------25-Sep-00 00:38:10
Host
---------azuro
Snap Length
(Minutes)
----------1.82
Load Profile
~~~~~~~~~~~~
Per Second
--------------Redo size:
4,893.39
Logical reads:
37.88
Block changes:
22.23
Physical reads:
4.26
Physical writes:
7.16
User calls:
0.02
Parses:
2.04
Hard parses:
0.06
Sorts:
0.35
Instance Efficiency Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait Ratio:
100.00
Buffer Hit
Ratio:
88.76
Library Hit
Ratio:
94.08
Redo
NoWait Ratio:
99.69
In-memory Sort Ratio:
94.74
Soft Parse Ratio:
96.85
Latch Hit Ratio:
100.00
Per Transaction
--------------533,380.00
4,129.00
2,423.00
464.00
780.00
2.00
222.00
7.00
38.00
30
TOAD
(Outil d administration)
31
32
BIBLIOGRAPHIE
Oracle 8i DBA LONELY.K., THERIAULT.M Oracle Press.
Optimisation des performances sous Oracle - GAJA KRISHNA, VAIDYANATHA, KIRTIKUMAR Oracle Press.
Oracle 9i sous Linux - BRIARD.G Eyrolles
Oracle OCP Oracle9i database: FundamentalsI-II Exam Guides.
C.Shallahammer, Direct Contention Identification Using Oracle s Session wait Tables
C.Millsap, Oracle Performance problem Diagnossis
www.hotsos.com
www.oraperf.com
technet.oracle.com/deploy/performance/
www.orapub.com
33
Questions ?
34