Вы находитесь на странице: 1из 16

Pense-bte du DBA Oracle

Par Orafrance
Date de publication : 23 avril 2004
Administration Oracle : Petits rappels d'administration
Retour l'acceuil Orafrance
Pense-bte du DBA Oracle par Orafrance
- 2 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Pense-bte du DBA Oracle......................................................................................................................................... 3
I - La thorie................................................................................................................................................................ 3
I-A - Le fichier init.ora............................................................................................................................................ 3
I-B - Dmarrage de la base................................................................................................................................... 3
I-C - Arrt de la base............................................................................................................................................. 4
I-D - Vues dynamiques connaitre....................................................................................................................... 4
I-E - Les redo logs................................................................................................................................................. 5
I-F - Les Tablespaces.............................................................................................................................................7
II - Copie de la base de donnes............................................................................................................................... 9
II-A - Cration des fichiers de contrle.................................................................................................................. 9
II-B - Modification du fichier gnr.....................................................................................................................10
II-C - Redmarrage de la base............................................................................................................................ 11
III - Tracer une session............................................................................................................................................. 11
III-A - Oradebug....................................................................................................................................................11
III-B - Analyse de la trace.................................................................................................................................... 12
III-C - Tkprof......................................................................................................................................................... 14
Remerciements.......................................................................................................................................................... 16
Pense-bte du DBA Oracle par Orafrance
- 3 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Pense-bte du DBA Oracle
Bonjour, cet article s'adresse un public averti mais pas forcment expert. Il a pour but de rappeler des acquis, c'est
pourquoi je ne suis pas entr dans le dtail. Vous pouvez bien entendu me faire part de vos remarques et attentes
sur les sujets traits.
I - La thorie
Il est ici question de rappeler quelques paramtres de la base de donnes (choisis compltement arbitrairement :-D)
ainsi que les paramtres d'arrt/dmarrage de la base. J'ai voulu rappeler aussi les diffrentes commandes possibles
sur les redo logs et enfin la gestion des tablespaces.
I-A - Le fichier init.ora
Le fichier init[SID].ora est le fichier de paramtrage de la base de donnes. Sans ce fichier la base ne pourra pas
dmarrer. L'emplacement par dfaut est ORACLE_HOME\dbs. Voici quelques exemples de paramtres :
BACK_GROUND_DUMP_DEST Emplacement o les fichiers traces des processus en arrire plan sont
enregistrs.
USER_DUMP_DEST Emplacement o les fichiers traces sont crs.
COMPATIBLE Version du serveur avec lequel l'instance est compatible.
CONTROL_FILES Noms des fichiers de contrle.
DB_BLOCK_BUFFERS Nombre de blocs mis en cache dans la SGA. La valeur par dfaut et minimum est de
50 buffers.
DB_NAME Identifiant de la base de donnes de 5 caractres ou moins. (seul paramtre ncessaire la
cration d'une base).
SHARED_POOL_SIZE Taille en octets de la zone de partage. (Default : 3 500 000).
IFILE Permet de rfrencer un autre fichier de paramtre imbriquer dans la dfinition.
LOG_BUFFER Nombre d'octets allous au buffer redolog dans la SGA.
MAX_DUMP_FILE_SIZE Taille maximum des fichiers trace, spcifie en nombre de blocs de l'OS.
PROCESSES Nombre de processus de l'OS pouvant se connecter simultanment cette instance.
SQL_TRACE Active on non l'outil de suivi SQL pour chaque session utilisateur (cf TKPROF pour exploiter les
sorties).
TIMED_STATISTICS Active ou non le minutage dans les fichiers trace et sur les crans.
I-B - Dmarrage de la base
STARTUP [paramtres];
NOMOUNT Cr la SGA et dmarre les processus en arrire plan mais ne permet pas l'accs la base
(reste un OPEN faire).
MOUNT Monte la base pour certaines activits DBA mais ne permet aucun accs la base.
OPEN Permet aux utilisateurs d'accder la base.
EXCLUSIVE Autorise l'instance courant seulement accder la base.
PFILE Spcifie le fichier d'initialisation prendre en compte.
FORCE Annule l'instance courante avant d'effectuer un dmarrage normal.
RESTRICT Autorise seulement l'accs aux utilisateurs avec le privilge RESTRICTED SESSION.
PARALLEL Serveur parallle Oracle.
SHARED Autre terme pour parallle.
RECOVER Dmarre la restauration media quand la base dmarre.
Sous NT, la base de donnes ORACLE s'excute comme tant un service. Pour modifier le mode dmarrage d'une
base, il suffit de modifier le script strt[SID].cmd dans %ORACLE_HOME%\DATABASE
Pense-bte du DBA Oracle par Orafrance
- 4 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
I-C - Arrt de la base
SHUTDOWN [paramtre];
NORMAL Les nouvelles connexions ne sont pas permises, le serveur oracle attend la fin de toutes les
connexion.
IMMEDIATE Les utilisateurs sont dconnects, les oprations en cours annules (rollback).
ABORT L'instance se termine sans fermer les fichiers, une restauration d'instance est souvent ncessaire
(recover) au prochain dmarrage.
TRANSACTIONNAL Plus de connexion possible, les ordres SQL en cours s'excute jusqu' leur terme et
aucun nouveau n'est accept.
I-D - Vues dynamiques connaitre
Il existe toute une srie de vue dynamique dont v$fixed_table qui contient le nom de toutes les vues disponibles.
Les principales sont :
v$parameter Contient des informations sur les paramtres d'initialisation.
N.B. : la commande SHOW PARAMETER CONTROL
quivaut : SELECT name,type,value FROM v$parameter WHERE name LIKE '%control%';
v$system_parameter Contient des informations sur les paramtres d'initialisation et leurs modifications
ventuelles.
v$sga Contient des infos sur la SGA.
v$option Contient la liste des options installes sur le serveur Oracle.
v$process Contient des informations sur les process actifs courant.
v$session Liste des information sur la session courante.
v$version Liste le numro de version et les composants.
v$instance Affiche l'tat de l'instance courante.
v$thread Contient des informations thread , par exemple sur les groupes redo log.
v$controlfile Liste le nom des fichiers de contrle (Ne renvoie aucune valeur l'tat NOMOUNT).
v$database Contient des informations sur la base.
v$databafile Contient des informations sur les fichiers de donnes et de contrle.
v$datafile_header Affiche des informations fichiers de donnes des fichiers de contrle.
v$logfile Contient des informations sur les fichiers redo_log.
Certains paramtres sont modifiables grce aux commandes ALTER SESSION ou ALTER SYSTEM. Par exemple :
ALTER SESSION SET SQL_TRACE=true; (Session courante)
ALTER SYSTEM SET TIMED_STATISTICS=true; (jusqu' l'arrt de la base)
ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED; (modifie la valeur de toutes les nouvelles connexions)
Pour trouver les paramtres modifis:
SELECT name, isses_modifiable, issys_modifiable, ismodified
FROM v$system_parameter
WHERE ismodified!='false';
La vue dynamique v$system_parameter a les spcifications suivantes :
NAME Nom du paramtre.
TYPE Type de donnes de la valeur :
1: Boolen
2: Chane de caractres
3: Entier
4: Fichier
5: Reserv
Pense-bte du DBA Oracle par Orafrance
- 5 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
6: Entier long
VALUE Valeur du paramtre.
ISDEFAULT Indique si la valeur du paramtre est celle par dfaut ou non.
ISSES_MODIFIABLE Indique si le paramtre est modifiable ou non avec un ALTER SESSION.
ISSYS_MODIFIABLE Indique si le paramtre est modifiable ou non avec un ALTER SYSTEM.
DEFERRED Indique que le paramtre ne sera modifi qu' partir de la prochaine session.
ISMODIFIED Indique comment le paramtre a t modifi. Si c'est par un ALTER SYSTEM, la valeur sera
MODIFIED.
ISADJUSTED Indique si la valeur a t ajust (par exemple, la valeur doit tre un entier et on a saisi 9.6,
alors Oracle ajuste la valeur 10).
UPDATE_COMMENT Commentaire associ la modification la plus rcente.
I-E - Les redo logs
Les fichiers redo logs permettent la base de garder une trace de toutes les altrations de donnes, ainsi en cas
de crash de la base, ils permettent de rejouer les modifications apportes la base. Ces fichiers doivent tre au
moins au nombre de deux et ncessitent une attention toute particulire tant au niveau de la sauvegarde que de
l'optimisation des accs.
En mode ARCHIVELOG, les redo logs sont archivs afin de garder une trace de toutes les modifications apportes
et non pas seulement dans la limite de la taille des fichiers de redo log.
Les fichiers de redo log crivent sur le disque le contenu de la mmoire lorsque le redo log buffer est plein. Il parait
alors vident que la taille des fichiers de redo log doivent tre au moins gale celle du redo log buffer (paramtre
log_buffer). Il n'y a pas vraiment de rgles pour dterminer la taille adquate des fichiers de redo.
Nanmoins il convient de garder en tte que plus le fichier est gros, moins vite il sera archiv et inversement, plus il est
petit plus vite il sera archiv. Le nombre d'archives gnres doit tre environ de deux par heure (du moins, c'est cette
rgle que j'applique ), effectivement il faut limiter le nombre d'archives crites puisque les accs disques sont couteux
en performance. De plus, les fichiers doivent tre, dans la mesure du possible, partags entre plusieurs disques afin
d'amliorer les temps d'accs et augmenter la scurit, et surtout, sur un disque diffrent de la base de donnes.
Ainsi, si les disques de la base de donnes sont altrs et que les redo logs sont dessus, ils seront eux aussi altrs,
rendant impossible la restauration de la base.
Voici quelques requtes relatives aux redo logs:
Pour voir l'tat des archives logs :
ARCHIVE LOG LIST;
SELECT name, log_mode FROM v$database;
SELECT archiver FROM v$instance;
Pour voir les informations sur les groupes de redo log :
SELECT groups, current_group#, sequence# FROM v$thread;
Pour voir des informations sur les groupes et les membres :
SELECT group#, sequence#, bytes, members, status FROM v$log;
Le status redo logs peut-tre : UNUSED : jamais crit CURRENT : en ligne et en cours d'criture ACTIVE : en ligne
et en cours d'archivage INACTIVE : en ligne, archiv et non utilis Pour voir des informations sur les fichiers de redo :
SELECT * FROM v$logfile;
Pour forcer le switch de groupe de redo log :
ALTER SYSTEM SWITCH LOGFILE;
Pense-bte du DBA Oracle par Orafrance
- 6 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Cette commande permet d'archiver le redo log courant et d'activer le redo log suivant.
ALTER SYSTEM CHECKPOINT;
Cette commande permet d'archiver le redo log courant.
Pour ajouter un groupe de fichier de redo log :
ALTER DATABASE ADD LOGFILE GROUP 2 'g:\oracle\oradata\orafrance\REDO03.LOG' size 10M;
ALTER DATABASE ADD LOGFILE GROUP 2 'g:\oracle\oradata\orafrance\REDO04.LOG' size 10M;
Pour supprimer un groupe de fichier de redo log :
ALTER DATABASE DROP LOGFILE GROUP 2;
Pour supprimer un membre d'un fichier redo log ONLINE :
ALTER DATABASE DROP LOGFILE MEMBER 'g:\oracle\oradata\orafrance\REDO02.LOG';
Pour dplacer le fichier de redo log ONLINE :
Ici nous allons illustrer comment utiliser les commandes prcdentes. Imaginons le scnario suivant : nous avons
deux groupes de fichiers (le groupe 1 et le 2) avec chacun deux fichiers de redo logs.
SELECT group#, status FROM v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
1 ACTIVE
2 CURRENT
2 INACTIVE
1 Crer un fichier de redo temporaire de la taille des redo logs :
ALTER DATABASE ADD LOGFILE GROUP 3 'g:\oracle\oradata\orafrance\REDO05.LOG' size 10M;
2 Positionner le redo courrant sur ce nouveau fichier :
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT group#, status FROM v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
1 INACTIVE
2 INACTIVE
2 ACTIVE
3 CURRENT
3 Supprimer les fichiers de redo logs et les recrer dans le nouveau rpertoire :
ALTER DATABASE DROP LOGFILE MEMBER 'g:\oracle\oradata\orafrance\REDO01.LOG';
ALTER DATABASE ADD LOGFILE GROUP 1 'g:\oracle\oradata\orafrance\redo\REDO01.LOG' size 10M;
ALTER DATABASE DROP LOGFILE MEMBER 'g:\oracle\oradata\orafrance\REDO02.LOG';
ALTER DATABASE ADD LOGFILE GROUP 1 'g:\oracle\oradata\orafrance\redo\REDO02.LOG' size 10M;
ALTER DATABASE DROP LOGFILE MEMBER 'g:\oracle\oradata\orafrance\REDO01.LOG';
ALTER DATABASE ADD LOGFILE GROUP 2 'g:\oracle\oradata\orafrance\redo\REDO03.LOG' size 10M;
ALTER DATABASE DROP LOGFILE MEMBER 'g:\oracle\oradata\orafrance\REDO02.LOG';
ALTER DATABASE ADD LOGFILE GROUP 2 'g:\oracle\oradata\orafrance\redo\REDO04.LOG' size 10M;
SELECT group#, status FROM v$log;
GROUP# STATUS
---------- ----------------
1 UNUSED
Pense-bte du DBA Oracle par Orafrance
- 7 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
1 UNUSED
2 UNUSED
2 UNUSED
3 CURRENT
4 Penser supprimer les fichiers g:\oracle\oradata\orafrance\REDOxx.LOG rendus inutiles.
5 Activer tous les groupes et supprimer le redo log temporaire :
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT group#, status FROM v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
1 INACTIVE
2 INACTIVE
2 CURRENT
3 INACTIVE
ALTER DATABASE DROP LOGFILE GROUP 3;
SELECT group#, status FROM v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
1 INACTIVE
2 INACTIVE
2 CURRENT
Penser supprimer le fichier g:\oracle\oradata\orafrance\REDO05.LOG rendu inutile.
I-F - Les Tablespaces
Les tablespaces sont des espaces disques rservs au stockage des donnes. Chaque tablespace est constitu
d'au moins un datafile : fichier de donnes, cr sur un disque.
Pour crer un tablespace :
CREATE TABLESPACE ora_data
DATAFILE 'g:\oracle\oradata\orafrance\ORA_DATA01.dbf' size 100M,
'g:\oracle\oradata\orafrance\ORA_DATA02.dbf' size 100M
MINIMUM EXTENT 500K (uniquement V8)
DEFAULT STORAGE (initial 500K next 500K MAXEXTENTS 500 PCTINCREASE 0);
Paramtres de cration :
DATAFILE Liste des fichiers de donnes.
MINIMUM EXTENT Permet de s'assurer que chaque taille d'extent utilis dans le tablespace est
un multiple de l'entier.
ONLINE Rend le tablespace disponible l'utilisation immdiatement aprs sa cration.
OFFLINE Cre le tablespace mais le laisse indisponible.
PERMANENT Spcifie que le tablespace contient des objets permanents.
TEMPORARY Permet de spcifier que les objets sont de types temporaire.
DEFAULT STORAGE Paramtres de stockage de tous les objets dans le tablespace.
Paramtres de stockage (DEFAULT STORAGE) :
INITIAL Dfinit la taille du premier extent (Par dfaut : 5*DB_BLOCK_SIZE).
Pense-bte du DBA Oracle par Orafrance
- 8 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
NEXT Se rapporte la taille de l'extent suivant.
MINEXTENTS Est le nombre d'extents allous lors de la cration du segment (Par dfault 1).
PCTINCREASE Pourcentage de croissance de la taille de l'extent, le n-ime next est alors gale
next*(1+(pctincrease/100))e(n-2).
Par exemple : si le initial est 16k et le pctincrease 10, le deuxime extent sera 16k,
le suivant de 18k (=16+10%),le suivant 20k (=18+10%), etc
Pour ajouter un fichier un tablespace :
ALTER TABLESPACE ora_data ADD DATAFILE 'g:\oracle\oradata\orafrance\ORA_DATA03.dbf' SIZE 200M;
Pour activer l'extension automatique de fichiers de donnes :
ALTER TABLESPACE ora_data ADD FILE 'g:\oracle\oradata\orafrance\ORA_DATA04.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M MAX SIZE 500M;
Pour modifier la taille d'un fichier de donnes :
ALTER DATABASE DATAFILE 'g:\oracle\oradata\orafrance\ORA_DATA02.dbf' RESIZE 50M;
Lorsqu'un tablespace a allou de nouveaux extents ceux-ci mme si des lignes ont t
supprimes, restent allous de telle sorte que si le tablespace a t rempli hauteur de 80 %,
sa taille ne pourra pas tre rduite de plus de 20 %.
Seul un TRUNCATE TABLE ou un ALTER INDEX REBUILD libre les extents. Ainsi, pour
retailler un tablespace il peut tre ncessaire de le vider compltement en dplaant les objets
dans un autre tablespace.
Pour dplacer un tablespace :
1 Mettre le tablespace OFFLINE :
ALTER TABLESPACE ora_data OFFLINE;
2 Copier le fichier dans le nouveau rpertoire
3 Renommer le fichier :
ALTER DATABASE RENAME FILE 'g:\oracle\oradata\orafrance\ORA_DATA01.dbf'
TO 'g:\oracle\oradata\orafrance\data\ORA_DATA1.dbf;
4 Mettre le tablespace ONLINE :
ALTER TABLESPACE ora_data ONLINE
5 Supprimer le fichier g:\oracle\oradata\orafrance\ORA_DATA01.dbf.
Pour mettre un tablespace en lecture seule :
ALTER TABLESPACE app_data READ ONLY;
Pour mettre un tablespace en lecture/criture :
ALTER TABLESPACE app_data READ WRITE;
Pour supprimer un tablespace :
DROP TABLESPACE app_data INCLUDING CONTENTS;
Cette commande ne supprime pas le datafile, il convient donc de supprimer le fichier haddock
si ncessaire.
Pense-bte du DBA Oracle par Orafrance
- 9 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
II - Copie de la base de donnes
Dans cet exemple, nous allons copier la base orafrance dans la base de test oratest qui aura t cre au
pralable.
La copie consiste arrter la base oratest et remplacer ses fichiers par ceux de la base orafrance et faire
en sorte que ceux-ci soient bien pris en compte.
II-A - Cration des fichiers de contrle
Les fichiers de contrle indique la base o sont situs les fichiers constituant la base de donnes.
Nous allons gnrer le script de cration des control files de la base orafrance :
SQL> alter database backup controlfile to trace;
Cette commande gnre un fichier trace dans le rpertoire des traces utilisateurs indiqu par le paramtre
user_dump_dest . Le fichier ressemble alors ceci : La partie qui nous intresse est la suivante :
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "orafrance" NORESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 908
LOGFILE
GROUP 1 'G:\ORACLE\ORADATA\orafrance\REDO01.LOG' SIZE 10M,
GROUP 1 'G:\ORACLE\ORADATA\orafrance\REDO02.LOG' SIZE 10M,
GROUP 2 'F:\ORACLE\ORADATA\orafrance\REDO03.LOG' SIZE 10M,
GROUP 2 'F:\ORACLE\ORADATA\orafrance\REDO04.LOG' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'F:\ORACLE\ORADATA\orafrance\SYSTEM01.DBF',
'F:\ORACLE\ORADATA\orafrance\CWMLITE01.DBF',
'F:\ORACLE\ORADATA\orafrance\DRSYS01.DBF',
'F:\ORACLE\ORADATA\orafrance\EXAMPLE01.DBF',
'F:\ORACLE\ORADATA\orafrance\INDX01.DBF',
'F:\ORACLE\ORADATA\orafrance\ODM01.DBF',
'F:\ORACLE\ORADATA\orafrance\TOOLS01.DBF',
'F:\ORACLE\ORADATA\orafrance\USERS01.DBF',
'F:\ORACLE\ORADATA\orafrance\XDB01.DBF',
'F:\ORACLE\ORADATA\orafrance\INDEX\INDPRD.DBF',
'F:\ORACLE\ORADATA\orafrance\DATA\DATPRD.DBF',
'F:\ORACLE\ORADATA\orafrance\DATA\DATDEM.DBF',
'F:\ORACLE\ORADATA\orafrance\DATA\DATDIS.DBF',
'F:\ORACLE\ORADATA\orafrance\DATA\DATHIS.DBF',
'F:\ORACLE\ORADATA\orafrance\DATA\DATREF.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDDEM.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDHIS.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDREF.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS2.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS3.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS4.DBF',
'G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS5.DBF'
CHARACTER SET WE8MSWIN1252
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# All logs need archiving and a log switch is needed.
ALTER SYSTEM ARCHIVE LOG ALL;
# Database can now be opened normally.
ALTER DATABASE OPEN;
# Commands to add tempfiles to temporary tablespaces.
# Online tempfiles have complete space information.
Pense-bte du DBA Oracle par Orafrance
- 10 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
# Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE 'G:\ORACLE\ORADATA\orafrance\TEMP02.DBF'
SIZE 2000M REUSE AUTOEXTEND OFF;
ALTER TABLESPACE TEMP ADD TEMPFILE 'G:\ORACLE\ORADATA\orafrance\TEMP01.DBF'
SIZE 2000M REUSE AUTOEXTEND OFF;
II-B - Modification du fichier gnr
La base copier doit tre arrte afin que tous les fichiers soient bien synchroniss.
Une fois que les fichiers de la base orafrance sont copis sur oratest , il convient de modifier le script de
cration des fichiers de contrle pour l'adapter aux nouveaux chemins. Par exemple, nous allons copier les fichiers
de F:\ORACLE\ORADATA\orafrance et G:\ORACLE\ORADATA\orafrance sur un autre serveur dans D:\ORACLE
\ORADATA\oratest.
Il faut donc remplacer les chanes de caractres F:\ORACLE\ORADATA\orafrance et G:\ORACLE\ORADATA
\orafrance par D:\ORACLE\ORADATA\oratest. Le nom de la base change aussi de orafrance oratest , il
faut donc spcifier ce changement en remplaant l'entte :
CREATE CONTROLFILE REUSE DATABASE "orafrance" NORESETLOGS ARCHIVELOG
devient :
CREATE CONTROLFILE SET DATABASE "oratest" RESETLOGS ARCHIVELOG
Nous allons commenter la ligne : RECOVER DATABASE; la base orafrance ayant t arrte une rcupration
n'est pas ncessaire. Et nous dmarrons la base en supprimant les logs : Nous allons commenter la ligne : ALTER
DATABASE OPEN; devient ALTER DATABASE OPEN RESETLOGS;.
Aprs avoir supprim les lignes inutiles le fichier doit ressembl ceci :
STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE "oratest" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 908
LOGFILE
GROUP 1 'D:\ORACLE\ORADATA\oratest\REDO01.LOG' SIZE 10M,
GROUP 1 'D:\ORACLE\ORADATA\oratest\REDO02.LOG' SIZE 10M,
GROUP 2 'D:\ORACLE\ORADATA\oratest\REDO03.LOG' SIZE 10M,
GROUP 2 'D:\ORACLE\ORADATA\oratest\REDO04.LOG' SIZE 10M
DATAFILE
'D:\ORACLE\ORADATA\oratest\SYSTEM01.DBF',
'D:\ORACLE\ORADATA\oratest\CWMLITE01.DBF',
'D:\ORACLE\ORADATA\oratest\DRSYS01.DBF',
'D:\ORACLE\ORADATA\oratest\EXAMPLE01.DBF',
'D:\ORACLE\ORADATA\oratest\INDX01.DBF',
'D:\ORACLE\ORADATA\oratest\ODM01.DBF',
'D:\ORACLE\ORADATA\oratest\TOOLS01.DBF',
'D:\ORACLE\ORADATA\oratest\USERS01.DBF',
'D:\ORACLE\ORADATA\oratest\XDB01.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDPRD.DBF',
'D:\ORACLE\ORADATA\oratest\DATA\DATPRD.DBF',
'D:\ORACLE\ORADATA\oratest\DATA\DATDEM.DBF',
'D:\ORACLE\ORADATA\oratest\DATA\DATDIS.DBF',
'D:\ORACLE\ORADATA\oratest\DATA\DATHIS.DBF',
'D:\ORACLE\ORADATA\oratest\DATA\DATREF.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDDEM.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDDIS.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDHIS.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDREF.DBF',
Pense-bte du DBA Oracle par Orafrance
- 11 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
'D:\ORACLE\ORADATA\oratest\INDEX\INDDIS2.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDDIS3.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDDIS4.DBF',
'D:\ORACLE\ORADATA\oratest\INDEX\INDDIS5.DBF'
CHARACTER SET WE8MSWIN1252
;
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\ORACLE\ORADATA\oratest\TEMP02.DBF'
SIZE 2000M REUSE AUTOEXTEND OFF;
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\ORACLE\ORADATA\oratest\TEMP01.DBF'
SIZE 2000M REUSE AUTOEXTEND OFF;
Enfin, il ne faut pas oublier de modifier le fichier d'initialisation de la base (initORAFRANCE.ora) si celui-ci a aussi
t copi.
Il faut le renommer en initORATEST.ora et modifier les paramtres suivant : db_name control_file user_dump_dest,
background_dump_dest, core_dump_dest utl_file_dir
Pensez galement rduire la taille de la base et supprimer le mode ARCHIVELOG si ncessaire.
II-C - Redmarrage de la base
Il suffit maintenant de se connecter en internal la base et excuter le script prcdent :
Sous UNIX :
sqlplus "/ as sysdba"
SQL>@control_file_oratest.txt
SQL>shutdown immediate
SQL>startup
Sous NT (dans une console) :
net start OracleServiceoratest
sqlplus "/ as sysdba"
SQL>@control_file_oratest.txt
SQL>shutdown immediate
SQL>startup
Cela aura pris 30 minutes environ (sans compter la copie de la base) et un petit tour dans le fichier alertoratest.log
vous assurera que tout est oprationnel et que tous les paramtres sont bons :-)
III - Tracer une session
III-A - Oradebug
Il est possible de tracer une session sous Oracle. Cette trace permet de voir les requtes excutes ainsi que les
temps d'excution de chacune des tapes (parse, execute et fetch).
Pour lancer une trace vous pouvez utiliser la commande SQL*Plus : oradebug.
D'abord, recherchons le spid de la session en question :
SELECT spid
FROM v$process a, v$session b
WHERE a.addr = b.paddr
AND sid = &sid;
Le spid permet alors de positionner oradebug et lancer la trace proprement dite. Connectez-vous sous l'utilisateur
SYS et lancez (en mentionnant votre spid) :
SQL> oradebug setospid 2961508
Oracle pid: 48, Unix process pid: 2961508, image: oracle@canebiere (TNS V1-V3)
SQL> oradebug event 10046 trace name context forever, level 8
Pense-bte du DBA Oracle par Orafrance
- 12 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Statement processed.
SQL>
La trace de niveau 8 (le niveau permet de tracer plus ou moins de dtail) est en cours. Un fichier trace doit tre cr
dans le rpertoire indiqu par le paramtre user_dump_dest.
SQL> show parameter user_dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /oracle/admin/orafrance/udump
Pour arrter la trace vous devez lancer la commande suivante :
SQL> oradebug event 10046 trace name context off
Statement processed.
III-B - Analyse de la trace
L'opration prcdente a gnr un fichier de cette forme :
Fichier trace
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.5.0 - Production
ORACLE_HOME = /oracle
System name: AIX
Node name: oraserver
Release: 2
Version: 5
Machine: 0026510C4C00
Instance name: orafrance
Redo thread mounted by this instance: 1
Oracle process number: 48
Unix process pid: 2961508, image: oracle@oraserver (TNS V1-V3)
*** 2005-06-07 11:00:33.056
*** SESSION ID:(51.13) 2005-06-07 11:00:32.994
WAIT #1: nam='pipe get' ela= 2517030 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 1000024 p1=504403158592102776 p2=4096 p3=20
APPNAME mod='01@</appl/glb/4.0.0/sql/GLBSUBMIT.sql' mh=1035094561 act
='' ah=4029777240
=====================
PARSING IN CURSOR #25 len=715 dep=1 uid=173 oct=3 lid=173 tim=1091928548919953 h
v=2807191513 ad='1379eed0'
SELECT IR1.GROUP_REQUEST_ID,MIN(IR1.GROUP_ORDER_NUM) ORDRE FROM JEFB_CONC_INST_R
EQUESTS IR1 WHERE IR1.PHASE_CODE = 'I' AND ( (IR1.FORCE_RUN = 'N' AND NOT EXISTS
(SELECT 'requete precedente non terminee ou en erreur' FROM JEFB_CONC_INST_REQU
ESTS IR2 WHERE IR2.GROUP_REQUEST_ID = IR1.GROUP_REQUEST_ID AND IR2.GROUP_ORDER_N
UM < IR1.GROUP_ORDER_NUM AND ( IR2.PHASE_CODE <> 'C' OR (IR2.PHASE_CODE = 'C' AN
D IR2.STATUS_CODE NOT IN ('C','I','R')) ))) OR (IR1.FORCE_RUN = 'Y' AND NOT EXIS
TS (SELECT 'requete precedente en cours' FROM JEFB_CONC_INST_REQUESTS IR2 WHERE
IR2.GROUP_REQUEST_ID = IR1.GROUP_REQUEST_ID AND IR2.GROUP_ORDER_NUM < IR1.GROUP_
ORDER_NUM AND IR2.PHASE_CODE IN ('P','R'))) ) GROUP BY IR1.GROUP_REQUEST_ID
END OF STMT
EXEC #25:c=0,e=108,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928548919919
FETCH #25:c=0,e=57,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928548922291
XCTEND rlbk=0, rd_only=1
=====================
PARSING IN CURSOR #27 len=6 dep=1 uid=173 oct=44 lid=173 tim=1091928548922410 hv
=1053795750 ad='125e3f68'
COMMIT
END OF STMT
EXEC #27:c=0,e=48,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928548922408
WAIT #1: nam='pipe get' ela= 2000021 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 3000027 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 4000026 p1=504403158592102776 p2=4096 p3=20
Pense-bte du DBA Oracle par Orafrance
- 13 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Fichier trace
WAIT #1: nam='pipe get' ela= 5000029 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 5000021 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 1000017 p1=504403158592102776 p2=4096 p3=20
EXEC #25:c=0,e=79,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928568923249
FETCH #25:c=0,e=30,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928568923330
XCTEND rlbk=0, rd_only=1
EXEC #27:c=0,e=44,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928788936635
WAIT #1: nam='pipe get' ela= 2000021 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 3000021 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 4000020 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 5000023 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 5000021 p1=504403158592102776 p2=4096 p3=20
WAIT #1: nam='pipe get' ela= 1000019 p1=504403158592102776 p2=4096 p3=20
EXEC #25:c=0,e=88,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928808937449
FETCH #25:c=0,e=39,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928808937541
XCTEND rlbk=0, rd_only=1
EXEC #27:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928808937641
WAIT #1: nam='pipe get' ela= 2000021 p1=504403158592102776 p2=4096 p3=20
Je ne rentrerais pas trop dans les dtails puisque nous verrons dans l'article suivant comment lire plus facilement ce
rsultat. Nanmoins, il n'est pas inintressant de savoir interprter un minimum cette trace.
L'entte rcapitule les donnes du systme : OS, nom de l'instance, nom du serveur, etc
Ligne du fichier Description
*** SESSION ID:(51.13) 2005-06-07
11:00:32.994
Indique le SID et SERIAL# de la session
trace et l'heure de dbut de la trace
APPNAME mod='01@</appl/glb/4.0.0/sql/
GLBSUBMIT.sql' mh=1035094561 act =''
ah=4029777240
C'est le script /appl/glb/4.0.0/sql/
GLBSUBMIT.sql qui est en cours
=====================
PARSING IN CURSOR #25 len=715
dep=1 uid=173 oct=3 lid=173
tim=1091928548919953 h v=2807191513
ad='1379eed0'
Le curseur 25 (id interne) est en cours de
parsing (phase d'analyse de la requte). Ce
curseur traite la requte SQL qui suit ces
lignes jusqu' la ligne END OF STMT
EXEC
#25:c=0,e=108,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928548919919
FETCH
#25:c=0,e=57,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928548922291
XCTEND rlbk=0, rd_only=1
Phase execute et fetch (excution de la
requte et restitution du rsultat).
WAIT #1: nam='pipe get' ela= 2000021
p1=504403158592102776 p2=4096 p3=20
vnement d'attente pipe get sur le cursor
1.
Je n'ai pas parl de la signification des variables c ou e dont on peut lire les valeurs.
Voila une liste de ce qu'elles indiquent :
Liste des indicateurs
1 c =>temps cpu en centime de seconde
2 e =>temps total en centime de seconde
3 p => nombre de lectures sur disque
4 (cr + cu) => nombre buffers gets
5 r => nombre de lignes retournes
6 og => mode de l'optimiseur : 4 => CHOOSE
Ainsi la ligne :
EXEC #25:c=0,e=108,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1091928548919919
Indique une excution qui n'a pas consomm de temps processeur mais qui a dur 108cs (1s).
Pense-bte du DBA Oracle par Orafrance
- 14 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Ici l'extrait de trace est suffisamment peu fournit pour admettre une lecture. Mais il est trs difficile de lire un fichier
trace exhaustif. Heureusement, Oracle fournit un outil pour formater ce fichier pour faciliter la lecture, cette outil
s'appelle tkprof.
III-C - Tkprof
tkprof est un outil aussi simple que pratique, vous dcouvrirez tous les paramtres d'utilisation dans la
documentation Oracle
Voici une commande excuter pour convenir la majorit des cas :
tkprof unx1_ora_2961508 orafrance explain=apps/apps sys=no sort=execnt,fchcnt
Ligne du fichier Description
tkprof orafrance_ora_2961508 orafrance Lance tkprof et analyse la trace
orafrance_ora_2961508.trc et gnre le
fichier orafrance.prf.
explain=apps/apps Excute le plan d'excution en se
connectant apps/apps.
sys=no Exclus les requtes systmes.
sort=execnt,fchcnt Tri les requtes par nombre d'excutions et
nombre de lignes ramenes.
Le rsultat de la commande prcdente est le suivant :
TKPROF: Release 9.2.0.5.0 - Production on Tue Jun 7 12:02:13 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Trace file: orafrance_ora_2961508.trc
Sort options: execnt fchcnt
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
SELECT IR1.GROUP_REQUEST_ID,MIN(IR1.GROUP_ORDER_NUM) ORDRE
FROM
JEFB_CONC_INST_REQUESTS IR1 WHERE IR1.PHASE_CODE = 'I' AND ( (IR1.FORCE_RUN =
'N' AND NOT EXISTS (SELECT 'requete precedente non terminee ou en erreur'
FROM JEFB_CONC_INST_REQUESTS IR2 WHERE IR2.GROUP_REQUEST_ID =
IR1.GROUP_REQUEST_ID AND IR2.GROUP_ORDER_NUM < IR1.GROUP_ORDER_NUM AND (
IR2.PHASE_CODE <> 'C' OR (IR2.PHASE_CODE = 'C' AND IR2.STATUS_CODE NOT IN
('C','I','R')) ))) OR (IR1.FORCE_RUN = 'Y' AND NOT EXISTS (SELECT 'requete
precedente en cours' FROM JEFB_CONC_INST_REQUESTS IR2 WHERE
IR2.GROUP_REQUEST_ID = IR1.GROUP_REQUEST_ID AND IR2.GROUP_ORDER_NUM <
IR1.GROUP_ORDER_NUM AND IR2.PHASE_CODE IN ('P','R'))) ) GROUP BY
IR1.GROUP_REQUEST_ID
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 14 0.01 0.00 0 0 0 0
Fetch 14 0.00 0.00 0 14 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 28 0.01 0.00 0 14 0 0
Misses in library cache during parse: 0
Pense-bte du DBA Oracle par Orafrance
- 15 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
Optimizer goal: CHOOSE
Parsing user id: 173 (APPS) (recursive depth: 1)
Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT GOAL: CHOOSE
0 SORT (GROUP BY NOSORT)
0 FILTER
0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF
'JEFB_CONC_INST_REQUESTS'
0 INDEX GOAL: ANALYZED (FULL SCAN) OF
'JEFB_CONC_INST_REQUESTS_N1' (NON-UNIQUE)
0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF
'JEFB_CONC_INST_REQUESTS'
0 INDEX GOAL: ANALYZED (RANGE SCAN) OF
'JEFB_CONC_INST_REQUESTS_N1' (NON-UNIQUE)
0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF
'JEFB_CONC_INST_REQUESTS'
0 INDEX GOAL: ANALYZED (RANGE SCAN) OF
'JEFB_CONC_INST_REQUESTS_N1' (NON-UNIQUE)
********************************************************************************
COMMIT
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 14 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 14 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: 173 (APPS) (recursive depth: 1)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 0 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
pipe get 81 5.00 265.52
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 28 0.01 0.00 0 0 0 0
Fetch 14 0.00 0.00 0 14 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 42 0.01 0.00 0 14 0 0
Misses in library cache during parse: 0
Pense-bte du DBA Oracle par Orafrance
- 16 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Orafrance. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://orafrance.developpez.com/dbahelp/
2 user SQL statements in session.
0 internal SQL statements in session.
2 SQL statements in session.
1 statement EXPLAINed in this session.
********************************************************************************
Trace file: orafrance_ora_2961508.trc
Trace file compatibility: 9.02.00
Sort options: execnt fchcnt
1 session in tracefile.
2 user SQL statements in trace file.
0 internal SQL statements in trace file.
2 SQL statements in trace file.
2 unique SQL statements in trace file.
1 SQL statements EXPLAINed using schema:
APPS.prof$plan_table
Default table was used.
Table was created.
Table was dropped.
163 lines in trace file.
Vous voyez que le rsultat est bien plus explicite et trivial. Vous noterez toutefois qu'avec tkprof nous perdons
l'information des vnements d'attente. Pensez donc bien relire la trace originale pour essayer d'expliquer par
exemple les carts entre temps CPU et temps rellement coul.
Remerciements
Je tenais remercier toutes les personnes qui m'ont aides et encourages dans la rdaction de cette article.
Merci Developpez.com et ses membres (Fadace, Helyos, Pomalaix et Sheikyerbouti) pour leur accueil et leur aide.
Enfin, je vous remercie, vous, lecteur attentif de cet article puisque c'est bien vous qui m'encouragez partager mon
maigre savoir ;-)

Вам также может понравиться