PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 25/01/2017 10:15:23

Performance d'un db PostgreSQL avec un front-end en Access.

Bonjour,

Je suis en train de porter une appli ms access sur pg.

Le client veut garder le front-end en access et avoir les data sur pg.

J'ai fait des linked tables. Ca va bien pour les select mais c'est très lent pour les autres opérations.

J'ai envoyé le query (un update) sur le serveur via ADODB d'access.

C'est beaucoup mieux mais c'est encore fort lent.

Comment pourrais-je optimiser ?

Merci pour votre attention.

Mchl

Hors ligne

#2 25/01/2017 11:13:55

rjuju
Administrateur

Re : Performance d'un db PostgreSQL avec un front-end en Access.

Bonjour,

Avez-vous vérifié que l'update en question est rapide si vous l'exécutez directement sur la base postgres ?  Sinon, pas d'idée désolé.

Hors ligne

#3 25/01/2017 11:24:12

Re : Performance d'un db PostgreSQL avec un front-end en Access.

J'ai, bien sûr, testé le query directement sur le serveur. (Bien que ne travaillant pas chez Dalibo, je ne suis pas complètement idiot.)
Mais le problème n'est pas reproductible : qqs fois, l'update se fait à la vitesse de l'éclair et qqfois, il lui faut 10 bonnes secondes.
Serait l'ODBC qui a des problèmes de congestion ?

Hors ligne

#4 25/01/2017 15:54:17

rjuju
Administrateur

Re : Performance d'un db PostgreSQL avec un front-end en Access.

Je ne suis pas certain de suivre.

le problème n'est pas reproductible : qqs fois, l'update se fait à la vitesse de l'éclair et qqfois, il lui faut 10 bonnes secondes.

Sur access uniquement ? Avez-vous tracé le temps d'exécution des requêtes sur la base pour valider qu'il s'agit bien d'un problème ADO/ODBC ?

Hors ligne

#5 26/01/2017 17:50:56

Re : Performance d'un db PostgreSQL avec un front-end en Access.

Finalement, le code suivant fonctionne bien :

' execute SQL on server
Private Sub RunSQLOnServer(SQLStmt As String)

    Dim cnn As ADODB.Connection
    
    Set conn = New ADODB.Connection
    
    conn.ConnectionString = "DSN=PostgreSQL test;"
    
    ' MsgBox ("conn.ConnectionString = " & conn.ConnectionString)
    MsgBox ("SQLStmt sent to the server : " & SQLStmt)
    
    conn.Open

    conn.Execute SQLStmt

    Set conn = Nothing

End Sub

Merci pour votre attention et bon week-end

Hors ligne

Pied de page des forums