PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

[LibPQ] Question de débutant pour traiter de gros result

Technique - général | [LibPQ] Question de débutant pour traiter de gros result

Par JDerrac le 12/09/2007 - 17:45

Bonjour,
je fait un SELECT sur un serveur distant en utilisant libpq qui me retourne ~300mo de donnée,
j'aurais aimé pouvoir traiter les tuples recu en meme temps (sans attendre que les 300mo aient fini de transiter pour pouvoir profiter du processeur qui ne fait quasiment rien pendant ce temps)

En utilisant PQexec on est obligé d'attendre que le client ai rappatrié tous les tuples pour pouvoir commencer à les traiter.

J'ai donc essayé d'utiliser PQsendQuery(m_pConnection, "SELECT * FROM EXEMPLE") avec au préalable PQsetnonblocking(m_Connection, 1).

Ensuite j'ai fait un petit bout de code ressemblant à ça pensant qu'ainsi j'arriverai a traiter le resultat par "portion" jusqu'a avoir PQgetResult(m_Connection) == 0

while(m_res = PQgetResult(m_Connection))
{
  TraiterResultatPartiel(m_res);
  PQClear(m_res);
}

Mais cela ne fonctionne pas au premier appel à PQgetResult(m_Connection) l'execution bloque attendant la fin du téléchargement des résultats.

J'ai chercher dans les exemples de la doc mais je n'ai pas trouver mon bonheur
J'utilise la libpq de postgres 8.0.1.
Merci de votre aide.
--Jeremy

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

hm... P-e avec des threads, l

sparky/ = 17 Septembre, 2007 - 10:48

hm... P-e avec des threads, l'un lit, l'autre commence à traiter. Conseils travailler avec des sémaphores et des buffers


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.