Bonjour tout le monde,
J'utilise Delphi pour interroger une base de données Firebird et à un moment donné, j'ai besoin de connaitre la valeur maximale d'un champ.
J'ai donc une requête
que j'exécute dans le programme Delphi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT MAX(NO_ID) FROM MATABLE
J'ai également essayé de faire une procédure stockée dans la BDD Firebird
L'une et l'autre des solutions fonctionnement parfaitement bien mais mon problème vient de la rapidité d'exécution. La table que j'utilise étant assez grande (900'000 enregistrements environs) j'aimerais savoir si il y a un moyen plus rapide que "MAX()" pour retourner le plus grand ID de la table?.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE PROCEDURE MAX_ID_TABLE RETURNS( MAX_ID INTEGER) AS BEGIN /* Procedure body */ SELECT MAX(NO_ID) FROM MATABLE INTO :MAX_ID; EXIT; END;
Merci d'avance
PS. Un index est présent sur le champ NO_ID de ma table
Partager