Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
A partir de PgAdmin 3 je lance une requête SQL qui au bout d'un temps t plante et envoie le message d'erreur "Out of memory for the result".
D'après ce que j'ai lu à droite et à gauche, aucuns réglages serveurs ne résout ce problème.
Je prends un cas simple :
select * from table
"table" possède 9 000 000 d'enregistrements. Si je lance la requête j'obtiens un "Out of memory for the result".
J'ai lu que le problème était du coté client. Mais je ne comprends pas bien pourquoi et quelle est exactement le problème ?
Avez-vous des explications afin que je comprenne concrètement ce qu'il se passe?
en vous remerciant par avance.
Cordialement,
j-pere
Hors ligne
En principe pour renvoyer les résultats d'une requête le moteur SQL doit travailler en mémoire exclusivement. Avez vous une RAM suffisante pour renvoyer au client les 9 millions de lignes ?
A +
Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES, Expert langage SQL
Le site sur les SGBD relationnel et langage SQL : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA, ISEN Toulon, CESI Aix en Provence * * * * *
Hors ligne
Il y a 8 Go de RAM sur le serveur.
Il est exclusivement dédié à la base de données postgresql (debian Lenny + PostgreSQL 9.0 + PostGIS 1.5.2 + PGrouting 1.05)
Hors ligne
je ne connais pas assez le code de pgadmin, mais est-ce que votre requete fonctionne avec psql sur le serveur ?
si oui, c'est bien cote pgadmin que ca bloque ! inversement, ramener 9 000 000 d'enregistrements en affichage n'est pas qq chose de courant ...
Hors ligne
Ce message d'erreur ne semble exister ni du côté de PostgreSQL ni du côté de pgAdmin. Où l'avez-vous récupéré ? je ne serais pas étonné que le message d'erreur vienne de pgAdmin, vu qu'il est sensé récupérer les 9 millions de lignes dans le grid d'affichage.
De toute façon, qu'on soit clair, message d'erreur ou pas, le grid est incapable de gérer l'affichage d'un tel nombre de lignes...
Guillaume.
Hors ligne
En .net, ça passe... !
A +
Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES, Expert langage SQL
Le site sur les SGBD relationnel et langage SQL : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA, ISEN Toulon, CESI Aix en Provence * * * * *
Hors ligne
Oups j'ai oublié un mot ^^". L'intitulé de l'erreur exact est 'out of memory for query result'
En effet c'est bien PgAdmin3 qui pose problème. M'en doutais mais j'avais pas eu le temps de tester directement sur le serveur.
L'exemple est plutôt foireux mais permettait de présenter simplement mon problème.
Hors ligne
Ce message là provient de la bibliothèque libpq (la bibliothèque de connexion native à PostgreSQL). Donc il n'y a pas d'erreur au niveau du serveur mais le poste client qui cherche à récupérer toutes ses données n'a pas assez de mémoire pour récupérer les infos. Rien à voir avec pgAdmin en fait, ni avec le langage.
Guillaume.
Hors ligne
Probablement une limite lié à l'adressage 32 bits si votre client est en 32 bits (2 ou 4 Go de data).
A +
Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES, Expert langage SQL
Le site sur les SGBD relationnel et langage SQL : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA, ISEN Toulon, CESI Aix en Provence * * * * *
Hors ligne
Pages : 1