Vous êtes sur la page 1sur 2

Université du Havre, Licence Pro DA2I, ABD, TP2, 15/11/2007, Enseignants : Nakechbandi M,

Thème : Architecture de Base de Données Oracle, les index.

A/ Gestion d’index.
Lorsque Le SGBD accède à une table, il la lit du début à la fin. Avec un index il peut accéder directement aux
lignes cherchées sans analyser les autres, les index sont donc un moyen d'effectuer des reqêtes plus rapidement.
Pour créer un index on utilise la commande CREATE INDEX
CREATE INDEX nom_idx ON nom_table (ch1, ch2);

1. Sous votre_nom_u1 créer et peupler une table bidon f d’une taille importante.
Indication :

create table f(N number(10), S number(10));


declare
i number (10);

begin
for i in 1..500000 loop
insert into f values(i, 500000-i+1);
end loop;
for i in 500001..1000000 loop
insert into f values(i, 1000000-i+1);
end loop ;
for i in 1000001..1500000 loop
insert into f values(i, 1500000-i+1);
end loop ;
end ;

2. Chercher une information dans f


Indication : select * from f where x in (125680, 555, 666600) ;

Ceci doit être coûteux en temps de calcul

3. Créer un index permettant d’améliorer l’accès à la table précédente f


Indication : CREATE INDEX index_f ON f (N, S);

4. Consulter à nouveau la table f


Indication : select * from f where x in (125680, 555, 666600) ;

5. Votre conclusion sur le temps de calcul ? (donner une comparaison approximative entre le temps de calcul
avant et après l’utilisation de l’index)

B/ Tables système (meta-tables).


6. Consulter la table système USER_INDEXES pour connaître vos objets de type index.
Indication : desc USER_INDEXES puis select … from USER_INDEXES;

7. Détruire (l’effacer) l’index f (drop index f)puis vérifier. (en consultant USER_INDEXES)

8. Donner le nom des tabes existant actuellement dans votre schéma.


Indication : desc tabs ; puis select … from tabs ;

1
9. Faire un petit teste en consultant une table système :
Indication : select * from dba_tablespaces ;

10. Consulter les tables systèmes (méta-base) suivantes :


 all_catalog /* table donnant toutes les tables accessibles */

 user_catalog /* table donnant les seules tables du USER */

 all_objects /* table donnant tous les objets accessibles */

 user_objects /* table donnant les seuls objets du USER */

C/ Architecture d’oracle
11. Donner la commande permettant d’afficher Les fichiers de contrôles (Control files) de la BD.

indication : consulter la table système V$CONTROLFILE


- Vérifier par rapport au schéma de la figure 1 (page 1).
- Vérifier également existence de ces fichiers au niveau système (LINUX)

12. Idem que la question précédente. Donner la commande permettant d’afficher Les fichiers de
journalisation (redo log files) de la BD.

13. Idem, trouver les fichiers de données de la base de données actuelle :


Indication : select file_name from DBA_DATA_FILES;
ou consulter la table système V$DBFILE

14. Trouver le nom de la base de données actuelle :


Indication : SELECT name FROM v$database;

15. Trouver les emplacements de fichiers de données précédent. Sont-ils accessible ? pourquoi ?

14. Consulter la table V$PARAMETER puis analyser son contenu


indication : describe V$PARAMETER, puis SELECT … FROM V$PARAMETER

15. Idem, l’ensemble de processus système relatifs à oracle


indication : Afficher les processus appartenant à l’utilisateur oracle en utilisant la commande système :
ps –axu | grep ora. (commande à taper dans une nouvelle fenêtre de commande)
On trouve entre autre : DBWR, LGWR, SMON, SMON , PMON

16. Trouver l’ensemble de processus utilisateur relatifs à oracle.


indication : Afficher les processus appartenant à l’utilisateur en utilisant la commande système (Linux) :
ps -aux | grep oracle | grep moi