Exercice

Soit les deux tables créées par les instructions suivantes :

CTRL+C pour copier, CTRL+V pour coller
1
CREATE TABLE T2 (
2
 E char(10) Primary Key);
3
4
CREATE TABLE T1 (
5
 A number(5) Primary Key,
6
 B number(2) Not Null,
7
 C char(10) References T2(E),
8
 D char(5));
CREATE TABLE T2 (
 E char(10) Primary Key);

CREATE TABLE T1 (
 A number(5) Primary Key,
 B number(2) Not Null,
 C char(10) References T2(E),
 D char(5));

Soit une requête dont on cherche à optimiser les performances :

CTRL+C pour copier, CTRL+V pour coller
1
SELECT A
2
FROM T1, T2
3
WHERE C=E AND Abs(B)>50
4
ORDER BY D;
SELECT A
FROM T1, T2
WHERE C=E AND Abs(B)>50
ORDER BY D;

Sachant que tous les attributs sont très discriminés (c'est à dire que les enregistrements contiennent souvent des valeurs différentes les uns par rapport aux autres) et que les deux tables contiennent un grand nombre d'enregistrements, quelles sont les instructions de création d'index qui vont permettre d'optimiser l'exécution de cette requête ?

  • CREATE INDEX idxA ON T1(A);

  • CREATE INDEX idxB ON T1(B);

  • CREATE INDEX idxC ON T1(C);

  • CREATE INDEX idxD ON T1(D);

  • CREATE INDEX idxE ON T2(E);

CorrectionRecommencer