|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 37 ![]() |
Bonjour,
Je développe un système avec une application Access comme client et une base de données Postgresql comme serveur. L'application est liée à la base de données par des tables Access liées via un connecteur ODBC. La base de données se trouve sur un serveur VMware accessible par le réseau. Ca fonctionne très bien, sauf pour la performance dans certains cas. Les tests de performance (CPU, mémoire, réseau) montrent que le serveur est peu chargé donc il faut chercher ailleurs. La source du formulaire le plus lent contient 70 colonnes dont 20 qui servent presque toutes de liste déroulante dans le formulaire. Les zones de ce formulaire sont réparties sur 9 onglets thématiques. Quelles sont les possibilités pour augmenter la performance : 1. Remplacer les onglets pas des boutons qui ouvrent chacun un autre formulaire en popup. Cela permettrait de fragmenter la masse de données à ouvrir en une fois. Mais n'y a-t-il pas un problème de locking dans ce cas car le formulaire et la popup utiliseraient la même ligne de la même table ? 2. Faire la même chose en jouant sur l'activation et la désactivation des onglets. 3. Fractionner la table. J'aimerais éviter. 4. Autre solution ??? Toutes les suggestions, toutes les idées, toutes les expériences, tous les conseils sont les bienvenus. |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Si tu as plusieurs onglets, tu peux ne charger les listes déroulantes d'un onglet que lorsque l'onglet devient visible. Ça aide beaucoup.
Autre truc que je viens d'utiliser et qui fait une VRAIE différence (du genre de 52 mn à 5 mn), si tu fais des jointures sur tes tables liées, utilise une requête de type 'SQL Direct' c'est dans le menu 'requête/spécifique SQL'. Cela te permet d'y mettre du SQL natif de ta BD liée ET de faire exécuter ce SQL par ta BD liée pas par ton poste client. Voir les propriétés de ta requête Access pour y définir la chaîne de connexion et surtout le time-out. Et tu peux aussi avoir un time out sur ton fichier de connexin ODBC, cela dépend des BD. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
![]() ![]() |
Bonjour
En complément de ce que t'a dit marot_r , tu peux lire ce tuto qui te donnera d'autres informations intéressantes : Tout ce que vous avez toujours voulu savoir sur l' OPTIMISATION d'APPLICATIONS Microsoft ACCESS.Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 37 ![]() |
Un grand merci à vous deux.
Je vais voir tout ce que cela donne dans mon cas et je reviens avec un feed-back. JL |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 37 ![]() |
Bonjour,
J'ai fait des essais sur base des indications que marot_r uniquement, jusqu'à présent : - le SQL direct n'arrange pas mon problème. C'est même plus lent qu'avec un query enregistré. Mais je n'ai pas de jointure dans ce query, donc je ne me trouve pas dans le même cas que celui qui a montré une nette amélioration. Le query remonte une soixantaine de colonnes qui viennent toutes de la même table, pour servir de source à un formulaire. Sauf que parmi ces colonnes, il y en a 15 à 20 qui servent de source de contrôle à une liste déroulante de type Table/requete. - J'ai remarqué que le plus gros du temps "perdu" était avant le début de l'événement sur ouverture (Form_Open), et au changement de ligne (dans la source du formulaire) - J'ai besoin de précisions pour essayer de retarder le chargement des listes déroulantes : + pour déclencher quand l'onglet devient visible : utiliser l'évmt "sur clic" de la page ? + comment bloquer le chargement des listes déroulantes à l'ouverture du formulaire ? + comment charger les listes déroulantes quand l'onglet devient visible ? + comment ne plus recharger les listes déroulantes si elles sont déjà chargées ? Merci d'avance. JL |
|
|
00
|
|
|
#6 | |||||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Citation:
Citation:
Citation:
Citation:
Citation:
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com