OVH Cloud OVH Cloud

Access et ODBC

2 réponses
Avatar
Eric Desage
bonjour,
je viens de passer les data's de ma base Access sur une base de données
(Postgres) et j'accède à cette base via un lien ODBC. Tout marche
correctement sauf que sur la recherche d'une fiche, les temps sont
horriblement longs. En traçant un peu, je constate que Access balaye
séquentiellement la table jusqu'à trouver l'occurrence désirée. Comme
j'ai 13000 enregistrements, j'ai un trafic réseau très conséquent.
Comment faire pour qu'il fasse le select * from individu where
name='Desage' et ne rende que ce résultat.
Merci,

2 réponses

Avatar
Arnaud [lwa]
Bonjour Eric Desage,

| bonjour,
| Comme j'ai 13000 enregistrements, j'ai un trafic réseau très
| conséquent. Comment faire pour qu'il fasse le select * from individu
| where name='Desage' et ne rende que ce résultat.
| Merci,

tu n'as qu'un seul critère et sans astérisque ?
autrement dit ta recherche est

where name='Desage'

mais jamais

where name like "*" & 'Desage' & "*"

ni encore

where name='Desage' or name = 'Dupond'

Dans ce cas, vérifier que le champ "name" est bien indexé
(très mauvais nom de champ ça, préférer ContactName par exemple)


--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Benoit
Bonjour,

je ne connais pas Postgres mais je travaille avec SQL SERVER et access. Si
tu utilises des tables liées, access remonte tous les enregistrements avant
de sélectionner le bon enregistrement. Je travaille en requête
spécifique/SQL direct. Ensuite je paramètre la requête grâce à un querydefs
(SELECT * FROM table WHERE ma condition). Dans ce cas, seules les données
triées remontent et le réseau est moins chargé.
C'est une solution qui fonctionne avec SQL server via un lien ODBC avec
Postgres je ne sais pas, mais c'est peut être une piste à explorer.
--
Benoit

"Eric Desage" a écrit dans le message de
news:4109fe04$0$24054$
bonjour,
je viens de passer les data's de ma base Access sur une base de données
(Postgres) et j'accède à cette base via un lien ODBC. Tout marche
correctement sauf que sur la recherche d'une fiche, les temps sont
horriblement longs. En traçant un peu, je constate que Access balaye
séquentiellement la table jusqu'à trouver l'occurrence désirée. Comme
j'ai 13000 enregistrements, j'ai un trafic réseau très conséquent.
Comment faire pour qu'il fasse le select * from individu where
name='Desage' et ne rende que ce résultat.
Merci,