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

Bases de données Delphi Discussion :

Une connexion lente (BD Sybase)


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut Une connexion lente (BD Sybase)
    bonjour

    j'utilise ADOconnction pour connecter à une base de donnée Sybase via ODBC ,le souci que je lai est la lenteur Lors la lecture des données est ce qu'il y a un moyen d'optimiser la connexion de lecture afin de faire un bon traitement ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 638
    Points : 25 357
    Points
    25 357
    Par défaut
    Lenteur ?
    Tu n'essaye pas par exemple de faire un SELECT * sur une table contenant des millions d'enregistrement ?

    Il me semble qu'il y a des mécanismes pour optimiser la gestion des requêtes renvoyant bcp de données en Sybase (comme pour tous les bons SGBD)
    Utilisation de paquet, requête Async...

    Evite le TADODataSet, utilise un TADOQuery avec un nombre limité d'enregistrement, il est souvent inutile de noyer l'utilisateur avec des milliers de lignes dans un DBGrid

    Pense au Prepare, cela améliore l'execution d'un SQL qui se répète souvent !

  3. #3
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut
    bonjour ShaiLeTroll
    Citation Envoyé par ShaiLeTroll Voir le message
    Lenteur ?
    !
    Lente que je veux le dire lors la connexion du composant Adotable avec les tables de ma base de données
    Citation Envoyé par ShaiLeTroll Voir le message
    Evite le TADODataSet, utilise un TADOQuery avec un nombre limité d'enregistrement,
    il est souvent inutile de noyer l'utilisateur avec des milliers de lignes dans un DBGrid
    !
    effectivement j’ai essai un ADOQUEY sans passer par adotable ou adodataset
    il n’ ya pas un lenteur .Mais pour un développer il faut voir les tables de la bd pour bien traiter les besoins

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 638
    Points : 25 357
    Points
    25 357
    Par défaut
    Citation Envoyé par louay02 Voir le message
    Mais pour un développer il faut voir les tables de la bd pour bien traiter les besoins
    Sybase est fourni avec Sybase Central qui donne fourni un viewer qui gére les tables de grand volume en lançant un requête asynchrone, utilise cela pour t'aider au développement

    Ensuite, tout dépend ce que je fais ton programme, mais le TADOTABLE doit être BANNI !
    Tout est réalisable par TADOQuery et une gestion intelligente de la donnée que ce soit à l'affichage ou pour des batch !

    Pour l'affichage, il est évident que le traitement doit être rapide !
    Utilise OnFetchProgress et OnFetchComplete
    Cela peut nécessité de modifier ExecuteOptions en lui affectant eoAsyncFetch ou eoAsyncFetchNonBlocking !
    Pour calmer l'impatience de l'utilisateur, faut pas non plus dépasser 5-6 secondes !

    Pour un Batch, peu importe si la requête est longue, elle peut tourner une minute puis rendre la main pour la suite, en général, l'utilisateur ne reste pas devant surtout si ça dure toute la nuit !

    L'implémentation de la gestion du Cache et de la reception par paquets des données n'est vraiment efficace qu'en mode asynchrone, effectivement, une Requête SQL qui lit des milliers d'enregistrements va prendre du temps car il faut les lire, les mettre en mémoire pour les envoyer sur le réseau, en mode bloquant, cela attend l'intégralité des données (vérifier si le DBGrid ou RecordCount n'empire pas la situation à ce sujet), alors qu'en Mode Asynchrone non bloquant, tu vas commencer tes opérations avant même que l'intégralité des enregistrements soit trouvés par ton server SYBASE !
    Gain de temps évident !

  5. #5
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut
    Merci ShaiLeTroll Pour votre explicative ,elle est très importante avec votre diagnostic j’ai importé beaucoup de choses Par Exmp :

    1-ISQL c’est un Manger free pour Sybase Lien
    2- la configure du SQL.INI dans une machine local

    Citation Envoyé par ShaiLeTroll Voir le message
    soit à l'affichage ou pour des batch !
    j'utilise le Adoquery pour calculer des statistiques et faire des recherches.

    C’est un plaisir de discuter avec vous merci encore ShaiLeTroll

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

Discussions similaires

  1. Connexion à une base de donnée Sybase
    Par DragonHeart dans le forum Bases de données
    Réponses: 0
    Dernier message: 04/04/2008, 11h03
  2. Réponses: 4
    Dernier message: 27/08/2007, 12h11
  3. Réccupération du mot de passe d'une connexion
    Par zinaif dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2002, 18h32
  4. [Réseau] Créer une connexion Internet
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/10/2002, 17h01
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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