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
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
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 !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
bonjour ShaiLeTroll
Lente que je veux le dire lors la connexion du composant Adotable avec les tables de ma base de données
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
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 !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
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
j'utilise le Adoquery pour calculer des statistiques et faire des recherches.
C’est un plaisir de discuter avec vous merci encore ShaiLeTroll![]()
Partager