2009-01-13 4 views
0

J'ai une question amusante pour vous, les gourous sql là-bas (ou peut-être inhere?). J'ai cette habitude quand j'ai besoin de construire une requête au moment de l'exécution. Afin d'éviter de multiples vérifications "if", je vais juste écrire "where true". Ensuite, le reste est une autre partie de la clause dans le formulaire, bien sûr de 'et vrai ...' et continue avec un filtrage utile.sql requête de performance en utilisant quelque peu étrange où la clause

Ma question est: est-ce que les 'où vrai et vrai' affectent les performances des requêtes? Bon, la meilleure réponse est de faire quelques tests, mais d'après votre expérience, que pouvez-vous dire de cette approche? A propos, le moteur sql qui m'intéresse particulièrement est MySql.

+0

Pouvez-vous nous donner un exemple d'une requête réelle générée? –

+0

D'accord, être capable de voir un exemple de requête serait probablement utile – UnkwnTech

Répondre

2

nous avons sql-server, mais nous utilisons pour ce genre de "ne pas programmer ifs" (s'il y a peu de temps) 1 = 1 comme expression, et il n'y avait pas de perf-impact que nous pouvions mesurer.

1

Je pense que l'optimiseur de requête MySQL se débarrasse de choses where true and true.

0

Ne devrait pas. Je l'ai fait plusieurs fois dans SQL Server et cela n'a aucun effet sur le plan d'exécution. Cependant, je ne laisserais pas cela dans le code de production.

Questions connexes