SQL Optimisation de la requête

J'utilise la requête suivante,

SELECT qTermine.REISENR, qTermine.REISEVON, qTermine.REISEBIS, MIN(qPreise.PREIS) AS PREIS FROM qTermine, qPreise WHERE qPreise.REISENR = qTermine.REISENR AND qPreise.PROVKLASSE = 1 AND qPreise.VERFUEGBAR <> 0 GROUP BY qTermine.REISENR, qTermine.REISEVON, qTermine.REISEBIS 

Je veux seulement sélectionner les rangées où le prix est minimum.

Est-ce OK ou nous pouvons l'optimiser?

La requête elle-même est bonne telle qu'elle est. Il est difficile de répondre à cette question, car pour la plupart des utilisations, ce que vous avez écrit est très bien. Êtes-vous actuellement confronté à des problèmes de performances ou cette requête est-elle exécutée pendant des périodes extrêmement longues? Ou êtes-vous juste prudent et voulez éviter d'introduire un gros goulot d'étranglement? Dans le cas de ce dernier, je ne pense pas que vous ayez besoin d'être inquiet; encore une fois, dans la plupart des utilisations, c'est bien.

Assurez-vous que vous avez un index sur REISENR sur les deux tables et sur qPreise.PREIS . Quant à PROVKLASSE et VERFUEGBAR j'ai l'printing qu'ils ne seront pas assez uniques pour que les index soient effectivement utilisés si vous les ajoutiez (vous pouvez vérifier cela dans votre plan d'exécution), mais il est difficile de le savoir sans connaître intimement votre Les données.

Vous interrogez est bon et vous pouvez avoir une meilleure performance si vous avez un index sur "qPreise.PREIS"