On 20/12/2010 22:58, Bernard wrote:
François Boisson wrote:
Le Sat, 18 Dec 2010 22:39:24 +0100
Bernard <bdebr...@teaser.fr> a écrit:

[...]
Il est donc clair que je n'ai pas adopté la bonne méthode.


En fait il faudrait qu'une fois la requête édité avec le frontal
d'openoffice,
tu bascules en édition MySQL et que tu donnes la requête elle même, tu
peux
même la copier et la coller directement dans mySQL pour voir si la
difficulté
vient de l'interface (je n'y crois pas) ou de la complexité de ta requête
(j'ai ramené de 1/4h à 1/10s une requête juste en mettant une indexation
correcte).

François Boisson

Ci-après, voici le code SQL généré par ma requête et les liens que j'ai
créés via OO.org_base :


SELECT `bapt_juil2010_complet`.`ID`,
`bapt_juil2010_complet`.`Code_lieu_acte`,
`bapt_juil2010_complet`.`Lieu_acte`, `Codes_lieux`.`Code_lieu`,
`Codes_lieux`.`Nom_localite`, `Codes_lieux`.`Paroisse`,
`bapt_juil2010_complet`.`JJ_acte`, `bapt_juil2010_complet`.`MM_acte`,
`bapt_juil2010_complet`.`AAAA_acte`,
`bapt_juil2010_complet`.`Prenom_enfant`,
`bapt_juil2010_complet`.`Nom_enfant`,
`bapt_juil2010_complet`.`Nom_pere`, `Codes_lieux_orig_pere`.`Code_lieu`,
`Codes_lieux_orig_pere`.`Nom_localite_orig_pere` FROM
`mabase`.`Codes_lieux` AS `Codes_lieux`,
`mabase`.`bapt_juil2010_complet` AS `bapt_juil2010_complet`,
`mabase`.`Codes_lieux_orig_pere` AS `Codes_lieux_orig_pere` WHERE
`Codes_lieux`.`Code_lieu` = `bapt_juil2010_complet`.`Code_lieu_acte` AND
`Codes_lieux_orig_pere`.`Code_lieu` =
`bapt_juil2010_complet`.`Code_lieu_acte`


Bonjour,

Dans ton cas tu devrais utiliser les jointures, car c'est plus optimisé
(voir http://sqlpro.developpez.com/cours/sqlaz/jointures/#LII-B)

De plus, la table bapt_juil2010_complet devrait être citée en premier car c'est elle qui sert de 'pivot'

As-tu indexé les champs suivants?
`Codes_lieux`.`Code_lieu`
`Codes_lieux_orig_pere`.`Code_lieu`
`bapt_juil2010_complet`.`Code_lieu_acte`

Ci-dessous ta requête avec des jointures :

SELECT `bapt_juil2010_complet`.`ID`,
 `bapt_juil2010_complet`.`Code_lieu_acte`,
 `bapt_juil2010_complet`.`Lieu_acte`, `Codes_lieux`.`Code_lieu`,
 `Codes_lieux`.`Nom_localite`, `Codes_lieux`.`Paroisse`,
 `bapt_juil2010_complet`.`JJ_acte`, `bapt_juil2010_complet`.`MM_acte`,
 `bapt_juil2010_complet`.`AAAA_acte`,
 `bapt_juil2010_complet`.`Prenom_enfant`,
 `bapt_juil2010_complet`.`Nom_enfant`,
 `bapt_juil2010_complet`.`Nom_pere`, `Codes_lieux_orig_pere`.`Code_lieu`,
 `Codes_lieux_orig_pere`.`Nom_localite_orig_pere` FROM
`mabase`.`bapt_juil2010_complet` AS `bapt_juil2010_complet`
LEFT JOIN
 `mabase`.`Codes_lieux` AS `Codes_lieux`
ON
`Codes_lieux`.`Code_lieu` = `bapt_juil2010_complet`.`Code_lieu_acte`
LEFT JOIN `mabase`.`Codes_lieux_orig_pere` AS `Codes_lieux_orig_pere` ON
`Codes_lieux_orig_pere`.`Code_lieu` = `bapt_juil2010_complet`.`Code_lieu_acte`


En espérant que cela accélère un peu les choses.

Bruno

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/4d105cc1.2020...@cyberoso.com

Répondre à