0% ont trouvé ce document utile (0 vote)
43 vues4 pages

II Optimisation Et Plan D'exécution

Transféré par

Logbo Axelle
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
43 vues4 pages

II Optimisation Et Plan D'exécution

Transféré par

Logbo Axelle
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

II Optimisation et plan d’exécution

1. Le nom et prénom du client numéro 5.


SELECT cli_nom, cli_prenom
FROM client
WHERE client.cli_id=5;

Ici avec un select oracle parcourt toutes les lignes de la table client pour
trouver un client qui a un id=5, le cout de la requête est 3
2. Les jours où le client numéro 5 a occupé une chambre.
SELECT JOUR
FROM occupation
WHERE cli_id=5;

Ici avec un select oracle parcourt toutes les lignes de la table occupation
pour trouver les jours où le client qui a un id=5 a réservé une chambre, le
cout de la requête est 11

3. Les chambres occupées le 22/01/1999.


SELECT chb_id
FROM occupation
WHERE jour='1999-01-22';

Ici avec un select oracle parcourt toutes les lignes de la table occupation
pour trouver les chambres qui ont été réservées le 22/01/1999, le cout de
la requête est 11

4. Le nom et prénom des clients ayant pris une chambre le 22/01/1999.


SELECT cli_nom, cli_prenom
From client, occupation
WHERE occupation.cli_id = client.cli_id
AND occupation.jour='1999-01-22';

Ici avec un select parcourant toutes les lignes des tables sélectionnées, il y
a eu un hachage/jointure impliquant les tables client et occupation dans
laquelle on sélectionne les clients qui ont réservé une chambre les
22/01/1999
Cout 14 pour le select
14 pour le hachage
11 pour le premier sous select
Et 3 pour le deuxième sous select

B
CREATE INDEX CLIENT_CLI_ID ON client (cli_id);
CREATE INDEX OCCUPATION_CLI_ID ON occupation (cli_id);
CREATE INDEX OCCUPATION_JOUR ON occupation (jour);
Après la création des indexes, on remarque qu’il y a réduction des coûts

III Contraintes

CREATE TABLE CLIENT


(
CLI_ID NUMBER(5,0),
TIT_CODE VARCHAR2(10),
CLI_NOM VARCHAR2(30),
CLI_PRENOM VARCHAR2(30),
CLI_ENSEIGNE VARCHAR2(50),
CONSTRAINT PK_Client PRIMARY KEY (ClI_ID)
);

CREATE TABLE OCCUPATION


(
CHB_ID NUMBER(3,0),
JOUR VARCHAR2(10),
CLI_ID NUMBER(3,0),
NB_PERS NUMBER(2,0),
RESERVE NUMBER(1,0) DEFAULT 0,
CONSTRAINT FK_Occupation FOREIGN KEY (CLI_ID)
REFERENCES CLIENT(CLI_ID)
);

insert into CLIENT (CLI_ID, TIT_CODE, CLI_NOM, CLI_PRENOM) values ( 1, 'M.',


'DUPONT', 'Alain');

insert into OCCUPATION (CHB_ID, JOUR, CLI_ID, NB_PERS, RESERVE) values ( 3,


'1999-01-02', 67, 3, 1);

1.code
CREATE VIEW V_ClientsVIP
AS SELECT cli_id,count(*) "nb_occupation"
FROM occupation
GROUP by cli_id
having count(*) >100;

Vous aimerez peut-être aussi