Bonjour la communauté,

J'ai trois tables avec des millions d'enregistrements.
J'essaie de faire une requête en jointure simple pour regrouper différentes informations des employés en me basant sur les conditions suivantes :
  • e.emp_NUMDOS - numéro dossier de l'employé de la table "employee"
  • t.tr_MANUMDOS - numéro dossier de l'employé de la table "travel"
  • e.emp_NOM1 - nom de l'employé de la table "employee"
  • e.emp_PRENOM - prénom de l'employé de la table "employee"
  • f.fl_BENNOM - nom de l'employé de la table "fly"
  • f.fl_BENPRE - prénom de l'employé de la table "fly"


Le souci, la requête tourne pendant longtemps (1h45) et je suis obligé de l'annuler car on note des ralentissements dans les applications.
Comment puis-je améliorer ma requête pour réduire la durée d’exécution et rapatrier les infos.

Merci d'avance.

Cordialement.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
SELECT (e.employee_PK_ID),(t.travel_PK_ID),(f.fly_PK_ID),
  e.emp_NOM1,
  e.emp_PRENOM,
  e.emp_NOM2,
  e.emp_IDENT,
  e.emp_DATENAI,
  e.emp_SEXE,
  f.fl_ASSNUM,
  f.fl_CPAM,
  f.fl_CPAMCLE,
  t.tr_NUM,
  t.tr_RECODE,
  t.tr_PGSCODE,
  e.emp_DATENT,
  t.tr_DDEB,
  t.tr_DFIN,
  t.tr_DEJFAC,
  t.tr_PRESENT,
  e.emp_CODECES,
  t.tr_DATCRE,
  t.tr_VALID
FROM employee e, travel t, fly f
WHERE e.emp_NUMDOS = t.tr_MANUMDOS
AND t.tr_RECODE   = 'HEPH'
AND e.emp_NOM1     = f.fl_BENNOM
AND e.emp_PRENOM   = f.fl_BENPRE
ORDER BY e.emp_NOM1;