|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mai 2008 Messages : 22 ![]() |
Bonjour
Ci-après une requête qui cherche dans des champs indexés. Le résultat de mes trois conditions "where" individuellement arrivent en quelques milli-sec. Mais les 3 ensembles (comme ci-après) arrivent en 7 secondes. Mes "or" ne sont pas une bonne idée??? Autre? Code :
Merci Martin |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Si chaque requête s'exécute rapidement, tu n'as qu'à utiliser une UNION entre ces requêtes.
Par ailleurs, seule la troisième requête a besoin des jointures, les colonnes des tables jointes n'étant pas utilisées dans les deux premières. De plus, ces jointures ne sont alors pas des jointures externes mais des jointures internes puisqu'une restriction est appliquée dans la clause WHERE sur une colonne d'une table jointe. Plus besoin de faire de regroupement puisqu'il est fait par l'opérateur UNION. Ce qui nous donne : Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Il faudrait le résultat d'EXPLAIN ANALYZE pour voir le plan d'exécution
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com