|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
Dans quelques fichiers de mon application, certaines requetes sont copieuses (peut-etre mal ficelée)
Cela se traduit à ce jour sur quelques rares serveurs par un The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay La solution de facilité pour moi est de placer au debut de chacune de mes pages php ceci : Code :
Merci à tous. |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Étant donné certaines requêtes complexes que j'ai effectuées et le fait que je n'ai jamais rencontré ce message d'erreur, j'aimerais bien voir une requête qui le provoque. Il y a probablement moyen de l'optimiser.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
Par exemple ce style de requete
Code :
ou celle-ci pour laquelle l'erreur sera identique Code :
Merci pour votre aide |
||||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : juillet 2011 Messages : 146 ![]() |
En général si sur le serveur tu as des limitation de la sorte c'est qu'il y a des raisons
Ou des soucis de configuration. Sur le serveur qui te sort l'erreur fait un pour voir la valeur qui est mise. Si la valeur est elevée mais que tu as quand même l'erreur qui se produit alors c'est que tes requêtes renvoient bcp trop de ligne et que tu peut les optimiser. Si la valeur est trop basse et que tu ne peut optimiser tes requêtes, alors tu n'aura pas trop le choix, mais sache qu'en général cela va devoir créer des tables temporaires sur disques pour tes jointures avec toutes les lenteurs qui vont en découler. |
|
00
|
|
|
#5 | ||
![]() ![]() |
Dans la première requête, il n'y a que deux jointures, ce n'est vraiment pas beaucoup !
Les colonnes figurant dans les conditions de jointures sont-elles indexées ? La seconde requête contient trois jointures, ce qui n'est guère plus ! Donc même question. De plus... 1) Les jointures s'écrivent depuis 1992 avec l'opérateur JOIN. 2) L'utilisation d'alias rend les requêtes beaucoup plus agréables à lire. Vos requêtes récrites : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com