[Gfoss] ERROR: out of memory for query result

Salve a tutti!
Sto provando a fare un left join con PostGIS tra un vettore di linee con
poco meno di 2.5milioni di elementi ed una tabella con circa 4mila elementi.

Questa è la sintassi che sto usando:

/SELECT
  a.geom,
  a.fid,
  a.id,
  a.nom,
  b.width_cat,
  b.importance
FROM
  france_rivers_bdtopo_hydrographie as a
LEFT JOIN principal_rivers_nogeom as b ON a.nom = b.toponyme_lower;/

Dopo un po' di minuti di attesa, pgAdmin 4 mi da l'errore in oggetto.

Ho un pc con CPU i7-4970k, 16GB di RAM DDR3, un SSD da 120GB con 20GB
liberi; ho monitorato tramite "Gestione attività" di Windows 10 l'uso della
RAM e non ha mai sforato i 10GB nei test che ho effettuato.

Come è possibile che ho quell'errore secondo voi?

-----
Ingegnere, consulente GIS e ciclista urbano
--
Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/

On Sat, 24 Nov 2018 03:56:21 -0700 (MST), Massimiliano Moraca wrote:

Salve a tutti!
Sto provando a fare un left join con PostGIS tra un vettore di linee con
poco meno di 2.5milioni di elementi ed una tabella con circa 4mila elementi.

Questa è la sintassi che sto usando:

/SELECT
  a.geom,
  a.fid,
  a.id,
  a.nom,
  b.width_cat,
  b.importance
FROM
  france_rivers_bdtopo_hydrographie as a
LEFT JOIN principal_rivers_nogeom as b ON a.nom = b.toponyme_lower;/

Dopo un po' di minuti di attesa, pgAdmin 4 mi da l'errore in oggetto.

Ho un pc con CPU i7-4970k, 16GB di RAM DDR3, un SSD da 120GB con 20GB
liberi; ho monitorato tramite "Gestione attività" di Windows 10 l'uso della
RAM e non ha mai sforato i 10GB nei test che ho effettuato.

Come è possibile che ho quell'errore secondo voi?

Massimiliano,

PostgreSQL ha una gestione molto sofisticata della RAM, e tutto quanto
dipende fortemente da come hai impostato i files della configurazione.
di norma la configurazione standard che viene installata automaticamente
e' molto conservativa e fortemente prudenziale; va bene per piccole
macchine poco potenti e con dotazioni molto limitate, mentre tende
a sfruttare poco e male le macchine con dotazioni piu' generose.

in soldoni, il fatto che tu abbia installato 16GB di RAM non
implica automaticamente il fatto che PostgreSQL la sfruttera'
tutta quanta: si fermera' alle soglie indicate dalla configurazione
corrente, che verosimilmente saranno molto piu' sparagnine.

prova a leggerti la doc di Postgres per capire meglio come
funziona il file postgresql.conf

https://www.postgresql.org/docs/9.4/runtime-config-resource.html

ciao Sandro

Ciao Sandro, avevo editato il primo post con una indicazione che avevo
dimenticato, la ricopio qui:

*EDIT: uso PostgreSQL 10 ed ho settato, in postgresql.conf, shared_buffers
a 2560MB *

Mi ero letto la documentazione e proprio per questo ho aumentato l'uso
della RAM ma il risultato è invariato

Il giorno sab 24 nov 2018 alle ore 12:31 <a.furieri@lqt.it> ha scritto:

On Sat, 24 Nov 2018 03:56:21 -0700 (MST), Massimiliano Moraca wrote:
> Salve a tutti!
> Sto provando a fare un left join con PostGIS tra un vettore di linee
> con
> poco meno di 2.5milioni di elementi ed una tabella con circa 4mila
> elementi.
>
> Questa è la sintassi che sto usando:
>
> /SELECT
> a.geom,
> a.fid,
> a.id,
> a.nom,
> b.width_cat,
> b.importance
> FROM
> france_rivers_bdtopo_hydrographie as a
> LEFT JOIN principal_rivers_nogeom as b ON a.nom = b.toponyme_lower;/
>
> Dopo un po' di minuti di attesa, pgAdmin 4 mi da l'errore in oggetto.
>
> Ho un pc con CPU i7-4970k, 16GB di RAM DDR3, un SSD da 120GB con 20GB
> liberi; ho monitorato tramite "Gestione attività" di Windows 10 l'uso
> della
> RAM e non ha mai sforato i 10GB nei test che ho effettuato.
>
> Come è possibile che ho quell'errore secondo voi?
>

Massimiliano,

PostgreSQL ha una gestione molto sofisticata della RAM, e tutto quanto
dipende fortemente da come hai impostato i files della configurazione.
di norma la configurazione standard che viene installata
automaticamente
e' molto conservativa e fortemente prudenziale; va bene per piccole
macchine poco potenti e con dotazioni molto limitate, mentre tende
a sfruttare poco e male le macchine con dotazioni piu' generose.

in soldoni, il fatto che tu abbia installato 16GB di RAM non
implica automaticamente il fatto che PostgreSQL la sfruttera'
tutta quanta: si fermera' alle soglie indicate dalla configurazione
corrente, che verosimilmente saranno molto piu' sparagnine.

prova a leggerti la doc di Postgres per capire meglio come
funziona il file postgresql.conf

https://www.postgresql.org/docs/9.4/runtime-config-resource.html

ciao Sandro
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017

On Sat, 24 Nov 2018 12:46:39 +0100, Massimiliano Moraca wrote:

Ciao Sandro, avevo editato il primo post con una indicazione che avevo
dimenticato, la ricopio qui:

_EDIT: uso PostgreSQL 10 ed ho settato, in postgresql.conf,
shared_buffers a 2560MB _

Mi ero letto la documentazione e proprio per questo ho aumentato l'uso
della RAM ma il risultato è invariato

Massimiliano,

temo che aggiustare solo "shared_buffers" non basti affatto, presumo
che dovresti arrangiare anche "work_mem", e forse anche altri tra
i molti parametri che influenzano le allocazioni di RAM.

prova a leggerti questo:
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

ciao Sandro

Il giorno sab 24 nov 2018 alle ore 12:31 ha scritto:

On Sat, 24 Nov 2018 03:56:21 -0700 (MST), Massimiliano Moraca wrote:
> Salve a tutti!
> Sto provando a fare un left join con PostGIS tra un vettore di
linee
> con
> poco meno di 2.5milioni di elementi ed una tabella con circa
4mila
> elementi.
>
> Questa è la sintassi che sto usando:
>
> /SELECT
> a.geom,
> a.fid,
> a.id [1],
> a.nom,
> b.width_cat,
> b.importance
> FROM
> france_rivers_bdtopo_hydrographie as a
> LEFT JOIN principal_rivers_nogeom as b ON a.nom =
b.toponyme_lower;/
>
> Dopo un po' di minuti di attesa, pgAdmin 4 mi da l'errore in
oggetto.
>
> Ho un pc con CPU i7-4970k, 16GB di RAM DDR3, un SSD da 120GB con
20GB
> liberi; ho monitorato tramite "Gestione attività" di Windows 10
l'uso
> della
> RAM e non ha mai sforato i 10GB nei test che ho effettuato.
>
> Come è possibile che ho quell'errore secondo voi?
>

Massimiliano,

PostgreSQL ha una gestione molto sofisticata della RAM, e tutto
quanto
dipende fortemente da come hai impostato i files della
configurazione.
di norma la configurazione standard che viene installata
automaticamente
e' molto conservativa e fortemente prudenziale; va bene per piccole
macchine poco potenti e con dotazioni molto limitate, mentre tende
a sfruttare poco e male le macchine con dotazioni piu' generose.

in soldoni, il fatto che tu abbia installato 16GB di RAM non
implica automaticamente il fatto che PostgreSQL la sfruttera'
tutta quanta: si fermera' alle soglie indicate dalla configurazione
corrente, che verosimilmente saranno molto piu' sparagnine.

prova a leggerti la doc di Postgres per capire meglio come
funziona il file postgresql.conf

https://www.postgresql.org/docs/9.4/runtime-config-resource.html
[2]

ciao Sandro
_______________________________________________
Gfoss@lists.gfoss.it [3]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss [4]
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le
posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017

Links:
------
[1] http://a.id
[2] https://www.postgresql.org/docs/9.4/runtime-config-resource.html
[3] mailto:Gfoss@lists.gfoss.it
[4] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
[5] mailto:a.furieri@lqt.it

Azz un bel po' di roba...me la leggo con calma.
Grazie

Il giorno sab 24 nov 2018 alle ore 12:56 <a.furieri@lqt.it> ha scritto:

On Sat, 24 Nov 2018 12:46:39 +0100, Massimiliano Moraca wrote:
> Ciao Sandro, avevo editato il primo post con una indicazione che
> avevo
> dimenticato, la ricopio qui:
>
> _EDIT: uso PostgreSQL 10 ed ho settato, in postgresql.conf,
> shared_buffers a 2560MB _
>
> Mi ero letto la documentazione e proprio per questo ho aumentato
> l'uso
> della RAM ma il risultato è invariato
>

Massimiliano,

temo che aggiustare solo "shared_buffers" non basti affatto, presumo
che dovresti arrangiare anche "work_mem", e forse anche altri tra
i molti parametri che influenzano le allocazioni di RAM.

prova a leggerti questo:
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

ciao Sandro

> Il giorno sab 24 nov 2018 alle ore 12:31 ha scritto:
>
>> On Sat, 24 Nov 2018 03:56:21 -0700 (MST), Massimiliano Moraca wrote:
>> > Salve a tutti!
>> > Sto provando a fare un left join con PostGIS tra un vettore di
>> linee
>> > con
>> > poco meno di 2.5milioni di elementi ed una tabella con circa
>> 4mila
>> > elementi.
>> >
>> > Questa è la sintassi che sto usando:
>> >
>> > /SELECT
>> > a.geom,
>> > a.fid,
>> > a.id [1],
>> > a.nom,
>> > b.width_cat,
>> > b.importance
>> > FROM
>> > france_rivers_bdtopo_hydrographie as a
>> > LEFT JOIN principal_rivers_nogeom as b ON a.nom =
>> b.toponyme_lower;/
>> >
>> > Dopo un po' di minuti di attesa, pgAdmin 4 mi da l'errore in
>> oggetto.
>> >
>> > Ho un pc con CPU i7-4970k, 16GB di RAM DDR3, un SSD da 120GB con
>> 20GB
>> > liberi; ho monitorato tramite "Gestione attività" di Windows 10
>> l'uso
>> > della
>> > RAM e non ha mai sforato i 10GB nei test che ho effettuato.
>> >
>> > Come è possibile che ho quell'errore secondo voi?
>> >
>>
>> Massimiliano,
>>
>> PostgreSQL ha una gestione molto sofisticata della RAM, e tutto
>> quanto
>> dipende fortemente da come hai impostato i files della
>> configurazione.
>> di norma la configurazione standard che viene installata
>> automaticamente
>> e' molto conservativa e fortemente prudenziale; va bene per piccole
>> macchine poco potenti e con dotazioni molto limitate, mentre tende
>> a sfruttare poco e male le macchine con dotazioni piu' generose.
>>
>> in soldoni, il fatto che tu abbia installato 16GB di RAM non
>> implica automaticamente il fatto che PostgreSQL la sfruttera'
>> tutta quanta: si fermera' alle soglie indicate dalla configurazione
>> corrente, che verosimilmente saranno molto piu' sparagnine.
>>
>> prova a leggerti la doc di Postgres per capire meglio come
>> funziona il file postgresql.conf
>>
>> https://www.postgresql.org/docs/9.4/runtime-config-resource.html
>> [2]
>>
>> ciao Sandro
>> _______________________________________________
>> Gfoss@lists.gfoss.it [3]
>> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss [4]
>> Questa e' una lista di discussione pubblica aperta a tutti.
>> I messaggi di questa lista non hanno relazione diretta con le
>> posizioni dell'Associazione GFOSS.it.
>> 796 iscritti al 28/12/2017
>
>
> Links:
> ------
> [1] http://a.id
> [2] https://www.postgresql.org/docs/9.4/runtime-config-resource.html
> [3] mailto:Gfoss@lists.gfoss.it
> [4] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> [5] mailto:a.furieri@lqt.it

Penso che questo sia più un problema di client che di server. È la parte
client di PG che sta cercando di mettere tutto il risultato in memoria e
non ce la fa. Su due piedi però non riesco a dare un consiglio specifico.

Giovanni

Il giorno sab 24 nov 2018, 12:56 <a.furieri@lqt.it> ha scritto:

On Sat, 24 Nov 2018 12:46:39 +0100, Massimiliano Moraca wrote:
> Ciao Sandro, avevo editato il primo post con una indicazione che
> avevo
> dimenticato, la ricopio qui:
>
> _EDIT: uso PostgreSQL 10 ed ho settato, in postgresql.conf,
> shared_buffers a 2560MB _
>
> Mi ero letto la documentazione e proprio per questo ho aumentato
> l'uso
> della RAM ma il risultato è invariato
>

Massimiliano,

temo che aggiustare solo "shared_buffers" non basti affatto, presumo
che dovresti arrangiare anche "work_mem", e forse anche altri tra
i molti parametri che influenzano le allocazioni di RAM.

prova a leggerti questo:
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

ciao Sandro

> Il giorno sab 24 nov 2018 alle ore 12:31 ha scritto:
>
>> On Sat, 24 Nov 2018 03:56:21 -0700 (MST), Massimiliano Moraca wrote:
>> > Salve a tutti!
>> > Sto provando a fare un left join con PostGIS tra un vettore di
>> linee
>> > con
>> > poco meno di 2.5milioni di elementi ed una tabella con circa
>> 4mila
>> > elementi.
>> >
>> > Questa è la sintassi che sto usando:
>> >
>> > /SELECT
>> > a.geom,
>> > a.fid,
>> > a.id [1],
>> > a.nom,
>> > b.width_cat,
>> > b.importance
>> > FROM
>> > france_rivers_bdtopo_hydrographie as a
>> > LEFT JOIN principal_rivers_nogeom as b ON a.nom =
>> b.toponyme_lower;/
>> >
>> > Dopo un po' di minuti di attesa, pgAdmin 4 mi da l'errore in
>> oggetto.
>> >
>> > Ho un pc con CPU i7-4970k, 16GB di RAM DDR3, un SSD da 120GB con
>> 20GB
>> > liberi; ho monitorato tramite "Gestione attività" di Windows 10
>> l'uso
>> > della
>> > RAM e non ha mai sforato i 10GB nei test che ho effettuato.
>> >
>> > Come è possibile che ho quell'errore secondo voi?
>> >
>>
>> Massimiliano,
>>
>> PostgreSQL ha una gestione molto sofisticata della RAM, e tutto
>> quanto
>> dipende fortemente da come hai impostato i files della
>> configurazione.
>> di norma la configurazione standard che viene installata
>> automaticamente
>> e' molto conservativa e fortemente prudenziale; va bene per piccole
>> macchine poco potenti e con dotazioni molto limitate, mentre tende
>> a sfruttare poco e male le macchine con dotazioni piu' generose.
>>
>> in soldoni, il fatto che tu abbia installato 16GB di RAM non
>> implica automaticamente il fatto che PostgreSQL la sfruttera'
>> tutta quanta: si fermera' alle soglie indicate dalla configurazione
>> corrente, che verosimilmente saranno molto piu' sparagnine.
>>
>> prova a leggerti la doc di Postgres per capire meglio come
>> funziona il file postgresql.conf
>>
>> https://www.postgresql.org/docs/9.4/runtime-config-resource.html
>> [2]
>>
>> ciao Sandro
>> _______________________________________________
>> Gfoss@lists.gfoss.it [3]
>> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss [4]
>> Questa e' una lista di discussione pubblica aperta a tutti.
>> I messaggi di questa lista non hanno relazione diretta con le
>> posizioni dell'Associazione GFOSS.it.
>> 796 iscritti al 28/12/2017
>
>
> Links:
> ------
> [1] http://a.id
> [2] https://www.postgresql.org/docs/9.4/runtime-config-resource.html
> [3] mailto:Gfoss@lists.gfoss.it
> [4] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> [5] mailto:a.furieri@lqt.it

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017

Salve a tutti,
ho un problema con la mia istallazione di Postgres 8.4 su windows 7. Ha
smesso di funzionare, non parte più, questo quello che ottengo da pgAdmin
quando tento di accedere ad un database:

"Server does't listen
Server dosn't accept connections:
....."
al comando stop server la risposta è:

servisio postgresql-8.4 - Postgres Server 8.4 non avviato

credo che mi sia corrotta l'istallazione.
Ora la domanda è: è possibile procedere a reistallare il tutto senza
perdere i dati? O senza doverli ricaricare poi con un restore da pgdump?
Ciao a tutti e grazie anticipatamente

--
Alessandro Ciali

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&gt;
Mail
priva di virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&gt;
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Ciao Alessandro

Il giorno mar 4 dic 2018 alle ore 08:56 Alessandro Ciali <
alessandro.ciali@gmail.com> ha scritto:
[...]

al comando stop server la risposta è:

servisio postgresql-8.4 - Postgres Server 8.4 non avviato

Dovresti capire perché non parte il servizio...

prova a eseguire

net start postgresql-8.4

da prompt dei comandi e vedi che errore ti da...

credo che mi sia corrotta l'istallazione.

Ora la domanda è: è possibile procedere a reistallare il tutto senza
perdere i dati? O senza doverli ricaricare poi con un restore da pgdump?
Ciao a tutti e grazie anticipatamente

Il modo per reinstallare tutto senza perdere i dati è appunto ricaricarli
con pgdump... c'è un motivo per cui sei fermo alla versione 8.4?
Appassionato di cose antiche?
Ti consiglio comunque di aggiornare ad una versione più recente e fare il
restore del db dal backup, forse dovrai farlo in più passaggi, perché
passare dalla 8.4 alla 9.6 o alla 10 potrebbe non esser possibile

Amedeo

Ciao Amedeo,
lanciando il comando

net start postgresql-8.4

mi restituisce

errore di sistema 5.

Accesso negato.

Se faccio "stop service" mi di ce che il server non è avviato.
L'istallazione è locale la porta 5432 aperta e il ping mi da
risposta....quindi credo proprio che sia un problema di istallazione, mi
armerò di pazienza e ritirerò su il tutto dopo nuova istallazione.
grazie per l'aiuto!

Sono rimasto alla 8.4 proprio perchè era sufficiente per le mie esigenze, e
non volevo imbarcarmi nell'impresa di importare il tutto (poche banche dati
peraltro molto semplici).

Il giorno mar 4 dic 2018 alle ore 09:46 Amedeo Fadini <amefad@gmail.com> ha
scritto:

Ciao Alessandro

Il giorno mar 4 dic 2018 alle ore 08:56 Alessandro Ciali <
alessandro.ciali@gmail.com> ha scritto:
[...]

al comando stop server la risposta è:

servisio postgresql-8.4 - Postgres Server 8.4 non avviato

Dovresti capire perché non parte il servizio...

prova a eseguire

net start postgresql-8.4

da prompt dei comandi e vedi che errore ti da...

credo che mi sia corrotta l'istallazione.

Ora la domanda è: è possibile procedere a reistallare il tutto senza
perdere i dati? O senza doverli ricaricare poi con un restore da pgdump?
Ciao a tutti e grazie anticipatamente

Il modo per reinstallare tutto senza perdere i dati è appunto ricaricarli
con pgdump... c'è un motivo per cui sei fermo alla versione 8.4?
Appassionato di cose antiche?
Ti consiglio comunque di aggiornare ad una versione più recente e fare il
restore del db dal backup, forse dovrai farlo in più passaggi, perché
passare dalla 8.4 alla 9.6 o alla 10 potrebbe non esser possibile

Amedeo

--
Alessandro Ciali

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&gt;
Mail
priva di virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&gt;
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Ciao Amedeo, ciao a tutti,
problema risolto con postgres che non partiva.
Ho cancellato il file postmaster.pid nella cartella "data" dentro alla
radice di istallazione di postgres e....net start postgresql-8.4; postgres
si è riavviato come niente fosse.
Chiedo scusa soprattutto perchè il problema era già stato sollevato sulla
lista gfoss nel 2010 e "risolto" dal MITICO Andrea Peri, quindi grazie
anche a lui.
I motivi che sono alla base del problema col file in questione
probabilmente si perdono nell'insondabile mondo di Windows, quindi non sto
neanche a tentare di capirlo.
Buonanotte a tutti

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&gt;
Mail
priva di virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&gt;
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 4 dic 2018 alle ore 09:46 Amedeo Fadini <amefad@gmail.com> ha
scritto:

Ciao Alessandro

Il giorno mar 4 dic 2018 alle ore 08:56 Alessandro Ciali <
alessandro.ciali@gmail.com> ha scritto:
[...]

al comando stop server la risposta è:

servisio postgresql-8.4 - Postgres Server 8.4 non avviato

Dovresti capire perché non parte il servizio...

prova a eseguire

net start postgresql-8.4

da prompt dei comandi e vedi che errore ti da...

credo che mi sia corrotta l'istallazione.

Ora la domanda è: è possibile procedere a reistallare il tutto senza
perdere i dati? O senza doverli ricaricare poi con un restore da pgdump?
Ciao a tutti e grazie anticipatamente

Il modo per reinstallare tutto senza perdere i dati è appunto ricaricarli
con pgdump... c'è un motivo per cui sei fermo alla versione 8.4?
Appassionato di cose antiche?
Ti consiglio comunque di aggiornare ad una versione più recente e fare il
restore del db dal backup, forse dovrai farlo in più passaggi, perché
passare dalla 8.4 alla 9.6 o alla 10 potrebbe non esser possibile

Amedeo

--
Alessandro Ciali