Lenteur chargement de sous-formulaire

Le
gauso
Bonjour à tous,

Voilà mon problème aujourd'hui : ma base gère des inventaires de fond=
s
d'archives d'architectes et le niveau haut dans la hiérarchie des
tables est le niveau "Fonds". L'unité documentaire principale étant le
"Projet".
j'ai - dans le formulaire de saisie "Projets" - un sous-formulaire
pour l'indexation (en langage documentaire), des "intervenants" sur le
projet (personnes ou collectivités).
Or on constate que pour le plus gros des Fonds, sans doute à cause du
nombre très important d'intervenants liés au fonds, le sous formulaire
met énormément de temps à s'afficher : un peu comme si le système
parcourait l'ensemble du fichier des intervenants (ou de la table
d'indexation) avant d'afficher ceux qui sont liés au "projet" en
cours !?
Informations sur l'organisation de mes tables :
- Table "Fonds" : relation 1-n avec la table "Projet" (avec des
intermédiaires mais j'abrège)
- Table "Projet" : relation 1-n avec la table "Indexation des
Intervenants"
- Table "Intervenants" : relation 1-n avec la table "Indexation des
intervenants"
(tous mes liens sont de type numériques bien sûr)

A ceux qui ont compris mon explication, savez-vous s'il y aurait moyen
d'accélérer l'affichage de mon sous-formulaire d'indexation des
Intervenants ?

Par avance, merci à ceux que la question inspirera ;o)
Gauso
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #22785601
gauso a écrit, le 13/11/2010 08:54 :
Bonjour à tous,

Voilà mon problème aujourd'hui : ma base gère des inventaires de fonds
d'archives d'architectes et le niveau haut dans la hiérarchie des
tables est le niveau "Fonds". L'unité documentaire principale étant le
"Projet".



[HS] Voilà qui rappelle une discussion il y a peu où on se demandait si
on travaillait "sur" ou "sous" un système d'exploitation :)

j'ai - dans le formulaire de saisie "Projets" - un sous-formulaire
pour l'indexation (en langage documentaire), des "intervenants" sur le
projet (personnes ou collectivités...).
Or on constate que pour le plus gros des Fonds, sans doute à cause du
nombre très important d'intervenants liés au fonds, le sous formula ire
met énormément de temps à s'afficher : un peu comme si le systè me
parcourait l'ensemble du fichier des intervenants (ou de la table
d'indexation) avant d'afficher ceux qui sont liés au "projet" en
cours !?
Informations sur l'organisation de mes tables :
- Table "Fonds" : relation 1-n avec la table "Projet" (avec des
intermédiaires mais j'abrège)
- Table "Projet" : relation 1-n avec la table "Indexation des
Intervenants"
- Table "Intervenants" : relation 1-n avec la table "Indexation des
intervenants"
(tous mes liens sont de type numériques bien sûr)

A ceux qui ont compris mon explication, savez-vous s'il y aurait moyen
d'accélérer l'affichage de mon sous-formulaire d'indexation des
Intervenants ?

Par avance, merci à ceux que la question inspirera ;o)
Gauso



Je crains qu'on ne coupe pas à regarder dans le détail comment sont
faites les requêtes, combien il y a d'enregistrements dans chaque table ,
de quelles tailles, et peut-être que j'en oublie encore.

On pourra voir si certaines informations doivent vraiment être dans la
requête principale, ou si la requête d'une liste ne suffirait pas.
db
Le #22785661
Le 13/11/2010 08:54, gauso a écrit :
Bonjour à tous,

j'ai - dans le formulaire de saisie "Projets" - un sous-formulaire
pour l'indexation (en langage documentaire), des "intervenants" sur le
projet (personnes ou collectivités...).
Or on constate que pour le plus gros des Fonds, sans doute à cause du
nombre très important d'intervenants liés au fonds, le sous formulaire
met énormément de temps à s'afficher : un peu comme si le système
parcourait l'ensemble du fichier des intervenants (ou de la table
d'indexation) avant d'afficher ceux qui sont liés au "projet" en
cours !?



Bonjour,

Vu de (très) loin, cela ressemble à un problème d'index (en langage
informatique) ; il faudrait sans doute vérifier que les tables
contiennent bien les index nécessaires. Il est probable qu'Access les
aura créés automatiquement au moment de la mise en place des relations,
mais cela mériterait d'y jeter un coup d'oeil.
Il faudrait aussi vérifier que le filtrage du sous-formulaire s'effectue
bien sur les champs pères-champs fils, et pas sur un filtrage dans le
sous-formulaire lui-même.

My two cents :-)

db
Michel__D
Le #22785771
Bonjour,

gauso a écrit :
Bonjour à tous,

Voilà mon problème aujourd'hui : ma base gère des inventaires de fonds
d'archives d'architectes et le niveau haut dans la hiérarchie des
tables est le niveau "Fonds". L'unité documentaire principale étant le
"Projet".
j'ai - dans le formulaire de saisie "Projets" - un sous-formulaire
pour l'indexation (en langage documentaire), des "intervenants" sur le
projet (personnes ou collectivités...).
Or on constate que pour le plus gros des Fonds, sans doute à cause du
nombre très important d'intervenants liés au fonds, le sous formulaire
met énormément de temps à s'afficher : un peu comme si le système
parcourait l'ensemble du fichier des intervenants (ou de la table
d'indexation) avant d'afficher ceux qui sont liés au "projet" en
cours !?
Informations sur l'organisation de mes tables :
- Table "Fonds" : relation 1-n avec la table "Projet" (avec des
intermédiaires mais j'abrège)
- Table "Projet" : relation 1-n avec la table "Indexation des
Intervenants"
- Table "Intervenants" : relation 1-n avec la table "Indexation des
intervenants"
(tous mes liens sont de type numériques bien sûr)

A ceux qui ont compris mon explication, savez-vous s'il y aurait moyen
d'accélérer l'affichage de mon sous-formulaire d'indexation des
Intervenants ?



Il faut d'abord regarder si les champs en relation sont bien indexés,
ce qui devrait être le cas du coté '1' mais à vérifier pour le coté 'n'
ensuite il faut jeter un oeil sur la complexité de la requête et enfin
peut-être vérifier/optimiser la structuration des tables.
gauso
Le #22785911
Merci pour vos réponses,

Hélas à priori elles ne résolvent pas mon problème :
Pour répondre à db et à Michel D :
- j'ai vérifié dans les tables impliquées : tous mes champs sont
"indexés" comme il se doit (à priori) : le champ lien côté 1 est un
numéro auto, le champ n est un numérique...,
- et je ne comprends pas très bien ce que vous voulez dire concernant
le "filtrage" du sous-formulaire ? les champs-père/champs fils sont
pour moi OK (c'est la référence lien entre les 2 tables qui sert de
filtre : c'est bien de cela dont vous parlez ?)
- quant à la structure : je viens de vous expliquer comment mes tables
étaient liées : à mon sens cette organisation est correcte et
simple... en tous les cas, je ne vois pas comment je peux
"l'optimiser" ?

Pour répondre à Gloops :
Je viens d'essayer de simplifier la requête source de mon sous-form
qui intégraient non seulement la table "indexation des intervenants",
mais également la table "Intervenants" => j'ai donc supprimé cette
dernière... mais je ne note aucune amélioration dans la vitesse
d'affichage,

Il faut dire que la table "indexation des intervenants" comporte quand
même quelques 180.000 enregistrements, dont 128.000 sont liés au fonds
en question ! : sans doute là que le bât blesse ? trop lourd ? La
seule façon de s'en sortir serait elle de subdiviser le fonds lui-
même ?

Gauso
gauso
Le #22785921
Miracle ! ça y est : problème résolu :o)
La lenteur venait de ce que j'avais associé une requête au contenu de
mon champ lié dans mon sous formulaire (filtre sur les enregistrements
appartenant au fonds en cours : je vous fait grâce des raisons pour
lesquelles j'avais fait cela... mais pas essentielles quoiqu'il en
soit) : c'est les collègues qui font la saisie qui vont être contents
lundi ! pas perdu ma matinée ;o),

Merci à tous,
Gauso
Michel__D
Le #22785971
Re,

gauso a écrit :
Merci pour vos réponses,

Hélas à priori elles ne résolvent pas mon problème :
Pour répondre à db et à Michel D :
- j'ai vérifié dans les tables impliquées : tous mes champs sont
"indexés" comme il se doit (à priori) : le champ lien côté 1 est un
numéro auto, le champ n est un numérique...,



Si pour toi l'indexation se résume à cela, il y a un problème !

Coté '1' c'est généralement la clé primaire (donc indexé sans doublon).
et
coté 'n' cela devrait être un champ numérique indexé avec doublon.

- et je ne comprends pas très bien ce que vous voulez dire concernant
le "filtrage" du sous-formulaire ? les champs-père/champs fils sont
pour moi OK (c'est la référence lien entre les 2 tables qui sert de
filtre : c'est bien de cela dont vous parlez ?)
- quant à la structure : je viens de vous expliquer comment mes tables
étaient liées : à mon sens cette organisation est correcte et
simple... en tous les cas, je ne vois pas comment je peux
"l'optimiser" ?

Pour répondre à Gloops :
Je viens d'essayer de simplifier la requête source de mon sous-form
qui intégraient non seulement la table "indexation des intervenants",
mais également la table "Intervenants" => j'ai donc supprimé cette
dernière... mais je ne note aucune amélioration dans la vitesse
d'affichage,

Il faut dire que la table "indexation des intervenants" comporte quand
même quelques 180.000 enregistrements, dont 128.000 sont liés au fonds
en question ! : sans doute là que le bât blesse ? trop lourd ? La
seule façon de s'en sortir serait elle de subdiviser le fonds lui-
même ?



A ce stade, si tout est conforme, il faut fournir plus de détail :

1) Quelle est la finalité du sous-formulaire.
2) Le détail de la ou les requête(s)
3) Structure des tables vis à vis des champs mis en jeu.
gauso
Le #22786001
On 13 nov, 12:31, Michel__D wrote:
Re,



> Hélas à priori elles ne résolvent pas mon problème :
> Pour répondre à db et à Michel D :
> - j'ai vérifié dans les tables impliquées : tous mes champs sont
> "indexés" comme il se doit (à priori) : le champ lien côté 1 es t un
> numéro auto, le champ n est un numérique...,

Si pour toi l'indexation se résume à cela, il y a un problème !



=> bien sûr que non ! je signalais seulement le cas des champs clés.. .
tous les autres champs étant indexés comme il se doit par ailleurs...
Mais voir mon dernier message : j'ai trouvé finalement l'origine du
problème,

Merci et bonne journée,
Gauso
Publicité
Poster une réponse
Anonyme