En ce qui concerne les performances d'une base il y a rarement de solution sans analyse détaillée des performances avec des outils comme la trace SQL/TKPROF, Statspack, OEM ou autres. Sans vouloir vous décourager, il faut un minimum d'expérience avec Oracle pour maîtriser un moins un outil et comprendre un peu ce qui ce passe dans la base.
Sur mon PC de bureau (pentium 4 3Ghz HT et 512 Mo de RAM), j'ai Oracle 10.2.0.1 Entreprise Edition et si je crée une table avec 2 colonnes, cela est rapide:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| dev001> spool tct.log
dev001>
dev001> drop user tct cascade;
User dropped.
dev001> drop tablespace tstct including contents and datafiles;
Tablespace dropped.
dev001>
dev001> create tablespace tstct datafile 'd:\oradata\dev001\tstct.dbf' size 100M
;
Tablespace created.
dev001> create user tct identified by tct001;
User created.
dev001> grant create session, alter session, create table to tct;
Grant succeeded.
dev001> alter user tct default tablespace tstct quota unlimited on tstct;
User altered.
dev001>
dev001> connect tct/tct001;
Connected.
dev001>
dev001> set timing on
dev001>
dev001> alter session set sql_trace=true;
Session altered.
Elapsed: 00:00:00.03
dev001> begin
2 for i in 1..10
3 loop
4 execute immediate 'create table t(c1 number, c2 varchar2(30))';
5 execute immediate 'drop table t';
6 end loop;
7 end;
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.56
dev001> show errors
No errors.
dev001> |
Vous pouvez essayez d'adapter le script ci dessus et de récupérer le fichier trace créé dans le répertoire indiqué par:
show parameter user_dump_dest
et l'analyser avec:
tkprof dev001_ora_3544.trc output=tct.out
Dans le fichier résultat, il y a aura entre autres les résultats pour les CREATE TABLE:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
********************************************************************************
create table t(c1 number, c2 varchar2(30))
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 10 0.00 0.00 0 0 0 0
Execute 10 0.15 0.17 1 10 126 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 20 0.15 0.17 1 10 126 0
Misses in library cache during parse: 10
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
******************************************************************************** |
C'est avec ce type de résultat qu'on peut analyser ce qui ce passe vraiment
dans la base et envisager des solutions.
Voir le tutoriel.
Partager