Bonjour,
J'ai une grosse requete impliquant une dizaine de table ( la 1ere possedant 3 cles etrangere, et la requete veut recuperer des champs de ces 3 tables) et des trucs dans le genre.

Actuellement, je me pose la question de rapidite de traitement.
Existe-t-il un moyen plus rapide que 10 requetes imbriques ? Comme par exemple l'utilisation de fonction pour chaque table ?

Merci d'avance

Julien

EDIT :
Voici la query
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
SELECT wojcsitecattyfrmn.*,
        lh.HONO,lh.HOURS,lh.RATE
FROM
(
  SELECT wojcsitecatty.*,frmn.JC_FOREMANDESC
  FROM
  (
    SELECT wojcsitecat.*,ty.JTY_DESC
    FROM 
    (
      SELECT wojcsite.*,cat.JC_CATEGORYDESC
      FROM
      (
        SELECT wojc.*,site.DEST_LIB
        FROM
        (
          SELECT wo.*,
                  jc.JC_CATEGORYCODE,jc.JC_DATECREATE,jc.JC_FOREMANCODE,jc.JC_JOBDESC,
                  jc.JC_JOBTYPE,jc.JC_JOBSEQNO
          FROM
          (
            SELECT 
                A.WO_WORKORDERNO, A.WO_SITECODE,A.WO_FROMSITECODE, A.WO_ASSETCODE,B.PL_DESC,
                A.WO_DATECREATE, A.WO_DATESTART, A.WO_DATEEND, A.WO_DATECLOSE,B.PL_BRAND
            FROM WorkShop.PLTWKORD as A with (nolock)
              Left Outer Join WorkShop.PLTPLANT as B with (nolock)
                On B.PL_CODE = A.WO_ASSETCODE
            WHERE A.WO_DATECREATE >= Convert(DateTime,'01/01/2009')
            AND A.WO_DATECREATE <= Convert(DateTime,'01/01/2010')
          ) as wo -- WorkOrder + Asset
            Left Outer Join WorkShop.PLTJOBCD as jc
            on jc.JC_WORKORDERNO = wo.WO_WORKORDERNO
        ) as wojc -- WorkOrder + Asset + JobCard
          Left Outer Join Account.Fddst as site
          on wojc.WO_SITECODE = site.DEST_COD
      ) as wojcsite -- WorkOrder + Asset + JobCard + Site
        Left Outer Join WorkShop.PLTJOBCAT as cat
        on wojcsite.JC_CATEGORYCODE = cat.JC_CATEGORYCODE
    ) as wojcsitecat -- WorkOrder + Asset + JobCard + Site + Category
      Left Outer Join WorkShop.PLTJOBTY as ty
      on wojcsitecat.JC_JOBTYPE = ty.JTY_JOBTYPE 
  ) as wojcsitecatty -- WorkOrder + Asset + JobCard + Site + Category + Type
    Left Outer Join WorkShop.PLTFORMN as frmn
    on wojcsitecatty.JC_FOREMANCODE = frmn.JC_FOREMANCODE
) as wojcsitecattyfrmn -- WorkOrder + Asset + JobCard + Site + Category + Type + Foreman
  Left Outer Join WorkShop.PLTJOBHR as lh
  on wojcsitecattyfrmn.JC_JOBSEQNO = lh.JC_JOBSEQNO
  AND wojcsitecattyfrmn.WO_WORKORDERNO =  lh.JC_WORKORDERNO