Salut à tous,
Je coince sur une requête SQL qui est peut être trop lourde, et dont je n'arrive pas à obtenir ce que je souhaite.
Ci-dessous, le détail de ma base SQL.
Ci-dessous la jointure que j'essaye de faire qui dure très très longtemps.
Est-ce qu'il existe des méthodes d'optimisations? Car là, à part devoir calculer une première fois ce résultat, et le stocker dans la base, je ne vois pas comment obtenir quelque chose de "rapide" et fiable.
Par avance merci de votre aide !
P.S: J'ai oublié d'expliquer à quoi sert cette requête.
La table "nodes" comprend des références de produits.
Chaque produits peut être constitué d'une multitude de paramètre.
Chaque type de paramètre est une table à part entière (le nom de table paramètre commence par "param_".
Un produit peut avoir plusieurs instance d'une paramètre.
Le but de la requête est de compter, pour un certain "type" de produits (1), le nombre de paramètre de chaque type.
Modifié par Super_baloo8 (23 Feb 2013 - 18:42)
Je coince sur une requête SQL qui est peut être trop lourde, et dont je n'arrive pas à obtenir ce que je souhaite.
Ci-dessous, le détail de ma base SQL.
Ci-dessous la jointure que j'essaye de faire qui dure très très longtemps.
SELECT
n.id,
n.reference,
COUNT(abe.id) AS additionalbomelement,
COUNT(af.id) AS additionalfastener,
COUNT(bfps.id) AS bomfromps,
COUNT(b.id) AS bonding,
COUNT(c.id) AS coilup,
COUNT(mb.id) AS manualbonding,
COUNT(mp.id) AS mountingprinciple,
COUNT(sno3dg.id) AS specificnoteon3dgeometry,
COUNT(sn.id) AS standardnote,
COUNT(tb.id) AS titleblock,
COUNT(tbg.id) AS totalbonding
FROM
nodes AS n
LEFT JOIN
param_additionalbomelement AS abe
ON
n.id = abe.ref
LEFT JOIN
param_additionalfastener AS af
ON
n.id = af.ref
LEFT JOIN
param_bomfromps AS bfps
ON
n.id = bfps.ref
LEFT JOIN
param_bonding AS b
ON
n.id = b.ref
LEFT JOIN
param_coilup AS c
ON
n.id = c.ref
LEFT JOIN
param_manualbonding AS mb
ON
n.id = mb.ref
LEFT JOIN
param_mountingprinciple AS mp
ON
n.id = mp.ref
LEFT JOIN
`param_specific note on threed geometry` AS sno3dg
ON
n.id = sno3dg.ref
LEFT JOIN
`param_standard note` AS sn
ON
n.id = sn.ref
LEFT JOIN
param_titleblock AS tb
ON
n.id = tb.ref
LEFT JOIN
param_totalbonding AS tbg
ON
n.id = tbg.ref
WHERE
n.type = 1
ORDER by
n.reference
Est-ce qu'il existe des méthodes d'optimisations? Car là, à part devoir calculer une première fois ce résultat, et le stocker dans la base, je ne vois pas comment obtenir quelque chose de "rapide" et fiable.
Par avance merci de votre aide !
P.S: J'ai oublié d'expliquer à quoi sert cette requête.
La table "nodes" comprend des références de produits.
Chaque produits peut être constitué d'une multitude de paramètre.
Chaque type de paramètre est une table à part entière (le nom de table paramètre commence par "param_".
Un produit peut avoir plusieurs instance d'une paramètre.
Le but de la requête est de compter, pour un certain "type" de produits (1), le nombre de paramètre de chaque type.
Modifié par Super_baloo8 (23 Feb 2013 - 18:42)