IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

SELECT MAX() : Rapidité


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par défaut SELECT MAX() : Rapidité
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT MAX(NO_ID) FROM MATABLE
    que j'exécute dans le programme Delphi.

    J'ai également essayé de faire une procédure stockée dans la BDD Firebird

    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;
    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?.

    Merci d'avance

    PS. Un index est présent sur le champ NO_ID de ma table

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Citation Envoyé par Nono23 Voir le message
    PS. Un index est présent sur le champ NO_ID de ma table
    Un index DESC ?

  3. #3
    Membre éclairé
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par défaut
    Oh Ohhhhh,

    Alors non mon index n'était pas DESC. J'ai essayé d'en créer un DESC et oh miracle le temps d'exécution est effectivement beaucoup plus rapide (Pour ne pas dire instantané )

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec un select max
    Par bobic dans le forum Oracle
    Réponses: 7
    Dernier message: 14/11/2005, 11h22
  2. [SQL] requete select max
    Par kabikou dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 19/10/2005, 16h18
  3. Aide pour un SELECT MAX(...)
    Par Gladiator dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/06/2005, 16h48
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Problème select MAX(annee) dans une requête
    Par grisounette dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 28/10/2004, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo