OPTIMIZE FOR
Changer la stratégie de l’optimiseur.
SELECT ... FROM [...] [WHERE ...] [...] [OPTIMIZE FOR {FIRST | ALL} ROWS]
La clause OPTIMIZE FOR
vous permet de changer la stratégie de l’optimiseur au niveau de la requête SQL courante.Elle ne peut apparaître que dans l’instruction SELECT
de la requête SQL de niveau supérieur.
Il existe deux stratégies d’optimisation des requêtes :
-
FIRST ROWS
- l’optimiseur construit le plan de requête pour ne récupérer que les premières lignes de la requête de la manière la plus rapide ; -
ALL ROWS
- l’optimiseur construit le plan de requête pour récupérer toutes les lignes de la requête le plus rapidement possible.
Dans la plupart des cas, une stratégie d’optimisation ALL ROWS' est nécessaire. Cependant, si vous avez des applications avec des grilles de données,dans lesquelles seules les premières lignes du résultat sont affichées et les autres sont récupérées en fonction des besoins, la stratégie `FIRST ROWS
peut être préférable car elle réduit le temps de déconnexion.
Par défaut, la stratégie d’optimisation spécifiée dans le paramètre OptimizeForFirstRows
du fichier de configuration est utiliséefirebird.conf
ou database.conf
. OptimiseForFirstRows = false
correspond à la stratégie ALL ROWS
,OptimiseForFirstRows = true
correspond à la stratégie First ROWS
.
La stratégie d’optimisation peut également être modifiée au niveau de la session à l’aide de l’opérateur SET OPTIMIZE
.La clause OPTIMIZE FOR
spécifiée dans l’instruction SQL vous permet de remplacer la stratégie spécifiée au niveau de la session.
La clause OPTIMIZE FOR
spécifie toujours la clause OPTIMIZE FOR
la plus récente dans une requête SELECT
, mais avant la clause INTO
.
Note
|
Si la requête SELECT contient |