RE: [pgsql-es-ayuda] Tamaño INT8

Lists: pgsql-es-ayuda
From: Eduardo Vázquez Rodríguez <evazquez(at)insys-corp(dot)com(dot)mx>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Postgres Out of memory
Date: 2005-04-05 20:00:08
Message-ID: 4252EE48.60001@insys-corp.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola a todos

Estoy corriendo un query que creo que le está pegando mucho al
performance de mi servidor es una máquina Solaris con 8 Gigas de RAM y
al correr un query me aparece un error que dice "out of memory"

Antes de moverle a los parámetros de /postgres.conf recuerdo que
generaba archivos temporales al correr queryes muy grandes los cuales se
almacenaban en un path ~/basedatos/psgsql_temp

Ahora no genera esos temporales y tal parece que cuando alcanza el valor
máximo de shared segments ahí marca el error

Si alguien me podría ayudar agradezco de antemano

Mi query
SELECT proceso, id_mail, to_mail, temp
FROM (
SELECT proceso, id_mail, to_mail, count (*) AS temp
FROM SENDMAIL2
GROUP BY proceso, id_mail, to_mail
HAVING proceso = 'Automatas'
) AS TAB_TEMP
HAVING temp != 1

Resultado del Explain

QUERY PLAN
Subquery Scan tab_temp (cost=622577.68..622612.73 rows=2003 width=118)
-> HashAggregate (cost=622577.68..622592.70 rows=2003 width=110)
Filter: (count(*) <> 1)
-> Seq Scan on sendmail2 (cost=0.00..622327.31 rows=20029
width=110)
Filter: ((proceso)::text = 'Automatas'::text)

Mi /etc/system

set shmsys:shminfo_shmmax = 1073741824
set shmsys:shminfo_shmmin = 1
set shmsys:shminfo_shmmni = 100
set semsys:seminfo_semmni = 100
set shmsys:shminfo_shmseg = 10
set semsys:seminfo_semmsl = 100
set semsys:seminfo_semmns = 2500

set semsys:seminfo_semopm=10
set semsys:seminfo_semaem=16384
set semsys:seminfo_semume=10
set semsys:seminfo_semmap=1
set semsys:seminfo_semusz=96
set semsys:seminfo_semmnu=30
set semsys:seminfo_semvmx=32767
forceload: sys/semsys
forceload: sys/shmsys

Mi postgresql.conf is this

shared_buffers = 50000
work_mem = 2097151
maintenance_work_mem = 2097151

--
If I have seen further it is by standing on the shoulders of the giants
Isaac Newton


From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Eduardo Vázquez Rodríguez <evazquez(at)insys-corp(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Postgres Out of memory
Date: 2005-04-05 20:19:51
Message-ID: 20050405201951.GB15302@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Tue, Apr 05, 2005 at 03:00:08PM -0500, Eduardo Vázquez Rodríguez wrote:

Hola,

> Estoy corriendo un query que creo que le está pegando mucho al
> performance de mi servidor es una máquina Solaris con 8 Gigas de RAM y
> al correr un query me aparece un error que dice "out of memory"

> SELECT proceso, id_mail, to_mail, temp
> FROM (
> SELECT proceso, id_mail, to_mail, count (*) AS temp
> FROM SENDMAIL2
> GROUP BY proceso, id_mail, to_mail
> HAVING proceso = 'Automatas'
> ) AS TAB_TEMP
> HAVING temp != 1

Por que no usas un solo HAVING? O sea

SELECT proceso, id_mail, to_mail, temp
FROM (
SELECT proceso, id_mail, to_mail, count (*) AS temp
FROM SENDMAIL2
GROUP BY proceso, id_mail, to_mail
HAVING proceso = 'Automatas' AND temp <> 1
) AS TAB_TEMP

De hecho no veo para que usas la consulta externa, y por que no pones
"proceso" en el WHERE (de hecho si te fijas en el explain, la condicion
se mueve dentro del seqscan de sendmail2 como si fuera una clausula
WHERE); por que no usas mejor

SELECT proceso, id_mail, to_mail
FROM SENDMAIL2
WHERE proceso = 'Automatas'
GROUP BY proceso, id_mail, to_mail
HAVING count(*) <> 1

> QUERY PLAN
> Subquery Scan tab_temp (cost=622577.68..622612.73 rows=2003 width=118)
> -> HashAggregate (cost=622577.68..622592.70 rows=2003 width=110)
> Filter: (count(*) <> 1)
> -> Seq Scan on sendmail2 (cost=0.00..622327.31 rows=20029
> width=110)
> Filter: ((proceso)::text = 'Automatas'::text)

Hum! Por favor haz "SET enable_hashagg to OFF" y luego tomas el explain
analyze de la consulta.

> shared_buffers = 50000
> work_mem = 2097151
> maintenance_work_mem = 2097151

Cual es el razonamiento que te hizo poner esos valores en work_mem y
maintenance_work_mem? Mas que seguro, son erroneos. Bajalos a valores
razonables; unas decenas de megas puede ser, cuando mucho ...
shared_buffers tambien es un poco excesivo IMHO.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"I personally became interested in Linux while I was dating an English major
who wouldn't know an operating system if it walked up and bit him."
(Val Henson)


From: "Douglas Escobar" <douglas(at)liztex(dot)com>
To: "'Alvaro Herrera'" <alvherre(at)dcc(dot)uchile(dot)cl>, 'Eduardo Vázquez Rodríguez' <evazquez(at)insys-corp(dot)com(dot)mx>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Tamaño INT8
Date: 2005-04-06 00:54:13
Message-ID: 000001c53a43$26e29310$0400a8c0@DOUGLAS
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Saludos Lista
Cual es el tamaño del Int8 oh cuantos registros me puede
almacenar en la Base de Datos

slds

-----Original Message-----
From: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] On Behalf Of Alvaro Herrera
Sent: Martes, 05 de Abril de 2005 02:20 p.m.
To: Eduardo Vázquez Rodríguez
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Postgres Out of memory

On Tue, Apr 05, 2005 at 03:00:08PM -0500, Eduardo Vázquez Rodríguez
wrote:

Hola,

> Estoy corriendo un query que creo que le está pegando mucho al
> performance de mi servidor es una máquina Solaris con 8 Gigas de RAM y

> al correr un query me aparece un error que dice "out of memory"

> SELECT proceso, id_mail, to_mail, temp
> FROM (
> SELECT proceso, id_mail, to_mail, count (*) AS temp
> FROM SENDMAIL2
> GROUP BY proceso, id_mail, to_mail
> HAVING proceso = 'Automatas'
> ) AS TAB_TEMP
> HAVING temp != 1

Por que no usas un solo HAVING? O sea

SELECT proceso, id_mail, to_mail, temp
FROM (
SELECT proceso, id_mail, to_mail, count (*) AS temp
FROM SENDMAIL2
GROUP BY proceso, id_mail, to_mail
HAVING proceso = 'Automatas' AND temp <> 1
) AS TAB_TEMP

De hecho no veo para que usas la consulta externa, y por que no pones
"proceso" en el WHERE (de hecho si te fijas en el explain, la condicion
se mueve dentro del seqscan de sendmail2 como si fuera una clausula
WHERE); por que no usas mejor

SELECT proceso, id_mail, to_mail
FROM SENDMAIL2
WHERE proceso = 'Automatas'
GROUP BY proceso, id_mail, to_mail
HAVING count(*) <> 1

> QUERY PLAN
> Subquery Scan tab_temp (cost=622577.68..622612.73 rows=2003
width=118)
> -> HashAggregate (cost=622577.68..622592.70 rows=2003 width=110)
> Filter: (count(*) <> 1)
> -> Seq Scan on sendmail2 (cost=0.00..622327.31 rows=20029
> width=110)
> Filter: ((proceso)::text = 'Automatas'::text)

Hum! Por favor haz "SET enable_hashagg to OFF" y luego tomas el explain
analyze de la consulta.

> shared_buffers = 50000
> work_mem = 2097151
> maintenance_work_mem = 2097151

Cual es el razonamiento que te hizo poner esos valores en work_mem y
maintenance_work_mem? Mas que seguro, son erroneos. Bajalos a valores
razonables; unas decenas de megas puede ser, cuando mucho ...
shared_buffers tambien es un poco excesivo IMHO.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"I personally became interested in Linux while I was dating an English
major
who wouldn't know an operating system if it walked up and bit him."
(Val Henson)

---------------------------(fin del mensaje)---------------------------
TIP 9: el optimizador ignorará el uso de recorridos de índice si los
tipos de datos de las columnas no coinciden


From: "juan osorio" <juan_osorio_ruiz(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: funciones plpgsql otra vez - consultas dinámicas...
Date: 2005-04-06 06:24:25
Message-ID: BAY19-F376625DF0206F2CD6CA707CC3D0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

<html><div style='background-color:'><P>Saludos.<BR>Estoy empezando con esto de las funciones en plpgsql pero aún tengo una gran duda:<BR>Necesito ejecutar una consulta dinámica, encontré un ejemplo en internet que más o menos es así:<BR><BR>create or replace function trimtablecol(text, text ) returns void as '<BR> DECLARE<BR> qry text;<BR> tab alias for $1;<BR> col alias for $2;<BR> BEGIN<BR> &nbsp;&nbsp; qry := ''update '' || <EM>tab</EM> || '' set '' || <EM>col</EM> || ''=trim('' || <EM>col</EM> || '');'';<BR> &nbsp;&nbsp; EXECUTE qry;<BR> &nbsp;&nbsp; RETURN;<BR> END;<BR> ' language 'plpgsql';</P>
<P>Mi problema es que cuando ejecuto esta función mas o menos así: <BR><BR>trimtablecol(cliente,&nbsp;cliente_mail )<BR><BR>me sale el siguiente error:<BR><BR>Attribute "cliente" not found. <BR><BR>He probado con otro tipo de consultas dinámicas en donde paso como parámetro el nombre de la tabla, pero me sale siempre el mismo error.</P>
<P>Que estoy haciendo mal???</P>
<P>ESPERO ME PUEDAN GUIAR. MUCHAS GRACIAS.</P></div></html>

Attachment Content-Type Size
unknown_filename text/html 1.0 KB

From: Juanky Moral <juanky(dot)moral(at)gmail(dot)com>
To: juan osorio <juan_osorio_ruiz(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funciones plpgsql otra vez - consultas din ámicas...
Date: 2005-04-06 06:36:36
Message-ID: 463a53a405040523361f1c1539@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Apr 6, 2005 8:24 AM, juan osorio <juan_osorio_ruiz(at)hotmail(dot)com> wrote:
>
>
> Saludos.
> Estoy empezando con esto de las funciones en plpgsql pero aún tengo una gran
> duda:
> Necesito ejecutar una consulta dinámica, encontré un ejemplo en internet que
> más o menos es así:
>
> create or replace function trimtablecol(text, text ) returns void as '
> DECLARE
> qry text;
> tab alias for $1;
> col alias for $2;
> BEGIN
> qry := ''update '' || tab || '' set '' || col || ''=trim('' || col ||
> '');'';
> EXECUTE qry;
> RETURN;
> END;
> ' language 'plpgsql';
>
> Mi problema es que cuando ejecuto esta función mas o menos así:
>
> trimtablecol(cliente, cliente_mail )
>
> me sale el siguiente error:
>
> Attribute "cliente" not found.
>
> He probado con otro tipo de consultas dinámicas en donde paso como parámetro
> el nombre de la tabla, pero me sale siempre el mismo error.
>
> Que estoy haciendo mal???
>
> ESPERO ME PUEDAN GUIAR. MUCHAS GRACIAS.

cliente y cliente_mail son parámetros de tipo text:
prueba así: select trimtablecol('cliente','cliente_mail');

--
Juanky Moral
"Tendré que moverme más rápido: el horizonte brilla eléctrico."
(Horizonte Eléctrico - www.losdeltonos.com )


From: "juan osorio" <juan_osorio_ruiz(at)hotmail(dot)com>
To: juanky(dot)moral(at)gmail(dot)com
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: [pgsql-es-ayuda] Re: funciones plpgsql otra vez - consultas din ámicas...
Date: 2005-04-06 06:57:46
Message-ID: BAY19-F781EFDBBC0C23C9E1AC45CC3D0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

<html><div style='background-color:'><P>gracias por la respuesta, y por lo diligente que fué, Saludos.</P></div></html>

Attachment Content-Type Size
unknown_filename text/html 122 bytes

From: "juan osorio" <juan_osorio_ruiz(at)hotmail(dot)com>
To: juanky(dot)moral(at)gmail(dot)com
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funciones plpgsql otra vez
Date: 2005-04-06 07:49:25
Message-ID: BAY19-F2A18376892D30CED9F14BCC3D0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Holas, Si, nuevamente yo :(

La verdad es que esto de las comillas simples me están volviendo loco, ahora estoy intentando con otra función que es esta:

CREATE OR REPLACE FUNCTION obtiene_productos(integer,integer,text,text) RETURNS SETOF RECORD AS '

DECLARE

tupla RECORD;

BEGIN

FOR tupla IN EXECUTE ''SELECT * FROM producto WHERE vprod_st''||$4||'' ORDER BY ''||$3||'' LIMIT $1 offset $2'' LOOP

return next tupla;

END LOOP;

return tupla;

END;

' language 'plpgsql';

Al ejecutar la función de esta manera: obtiene_productos(20,40,'prod_nom','0') (suponiendo que el campo vprod_st es char(1) ) me sale este error:

ERROR: ExecEvalParam: Unknown value for parameter (null)

me parece que son las comillas el problema, estoy en lo cierto??? Muy agradecidos por la paciencia. Saludos


:(

Attachment Content-Type Size
unknown_filename text/html 1.4 KB

From: Juanky Moral <juanky(dot)moral(at)gmail(dot)com>
To: juan osorio <juan_osorio_ruiz(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funciones plpgsql otra vez
Date: 2005-04-06 08:58:54
Message-ID: 463a53a40504060158108465ad@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Si usas postgres >= 8.0, puedes trabajar más fácilmente con las comillas:
CREATE OR REPLACE FUNCTION testfunc(integer) RETURNS integer AS $$
...
$$ LANGUAGE plpgsql;

Si delimitas el principio y el final de la función con $$
(dollar_quoted) puedes usar libremente las comillas simples dentro del
cuerpo de la función.
Echa un vistazo a esta página:
http://www.linuxshare.ru/docs/software/SQL/postgresql/manual/plpgsql-development-tips.html

On Apr 6, 2005 9:49 AM, juan osorio <juan_osorio_ruiz(at)hotmail(dot)com> wrote:
>
>
> Holas, Si, nuevamente yo :(
>
> La verdad es que esto de las comillas simples me están volviendo loco, ahora
> estoy intentando con otra función que es esta:
>
> CREATE OR REPLACE FUNCTION
> obtiene_productos(integer,integer,text,text) RETURNS SETOF
> RECORD AS '
> DECLARE
> tupla RECORD;
>
> BEGIN
> FOR tupla IN EXECUTE ''SELECT * FROM producto WHERE
> vprod_st<>''||$4||'' ORDER BY ''||$3||'' LIMIT $1 offset $2'' LOOP
> return next tupla;
> END LOOP;
> return tupla;
>
> END;
> ' language 'plpgsql';
>
> Al ejecutar la función de esta manera:
> obtiene_productos(20,40,'prod_nom','0') (suponiendo que el
> campo vprod_st es char(1) ) me sale este error:
>
> ERROR: ExecEvalParam: Unknown value for parameter (null)
>
> me parece que son las comillas el problema, estoy en lo cierto??? Muy
> agradecidos por la paciencia. Saludos
>
>
> :(
>
> ---------- Forwarded message ----------
> From: "juan osorio" <juan_osorio_ruiz(at)hotmail(dot)com>
> To: juanky(dot)moral(at)gmail(dot)com
> Date: Wed, 06 Apr 2005 06:57:46 +0000
> Subject: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: funciones plpgsql otra
> vez - consultas din ámicas...
>
>
> gracias por la respuesta, y por lo diligente que fué, Saludos.
>

--
Juanky Moral
"Tendré que moverme más rápido: el horizonte brilla eléctrico."
(Horizonte Eléctrico - www.losdeltonos.com )


From: Eduardo Vázquez Rodríguez <evazquez(at)insys-corp(dot)com(dot)mx>
To: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Postgres Out of memory
Date: 2005-04-06 16:06:27
Message-ID: 42540903.8080308@insys-corp.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Gracias por tu atención Alvaro

En cuanto al postgres al reiniciar la máquina del server (Solaris) y
donde se encuentra el PgAdmin (XP) el problema se soluciono. Antes de
que empezara a marcar los errores de "Out of memory" ejecutaba muchos
queries cuyo resultado eran millones de líneas, los cuales en el PgAdmin
cuando aparece el mensaje "Has exceded the maximum value (100) Do you
want to retrieve all the lines?" le decía que sí, después de 1 o 2
minutos le daba STOP junto cuando estaba trayendo la información del
disco del servidor y sólo mostraba 300 000 lineas

Así fueron muchos queries y no lo sé de cierto, pero supongo que se
quedaron atorados file handlers o no se liberaba la shared memory

En cuanto a los valores de shared buffers y work mem, las conexiones que
tengo a la base de datos son 1 ó a lo mucho 2, las cuales consultan
tablas de hasta 70 millones de registros. Los valores son para asignar
la mayor cantidad de memoria RAM a este servidor dedicado a Postgres. Si
tengo 8 gigas de RAM le doy un valor adecuado al postgres para que use 2
gigas en Work_mem y cada conexión (que sólo es una) le dedica 400 Megas

Esto es porque así (bajo pruebas se comprobó) que en algunos queries no
se crean archivos temporales de 1 giga sino que Postgres aprovecha la RAM.

Saludos

Alvaro Herrera wrote:

>On Tue, Apr 05, 2005 at 03:00:08PM -0500, Eduardo Vázquez Rodríguez wrote:
>
>Hola,
>
>
>
>>Estoy corriendo un query que creo que le está pegando mucho al
>>performance de mi servidor es una máquina Solaris con 8 Gigas de RAM y
>>al correr un query me aparece un error que dice "out of memory"
>>
>>
>
>
>
>>SELECT proceso, id_mail, to_mail, temp
>>FROM (
>> SELECT proceso, id_mail, to_mail, count (*) AS temp
>> FROM SENDMAIL2
>> GROUP BY proceso, id_mail, to_mail
>> HAVING proceso = 'Automatas'
>> ) AS TAB_TEMP
>>HAVING temp != 1
>>
>>
>
>Por que no usas un solo HAVING? O sea
>
> SELECT proceso, id_mail, to_mail, temp
> FROM (
> SELECT proceso, id_mail, to_mail, count (*) AS temp
> FROM SENDMAIL2
> GROUP BY proceso, id_mail, to_mail
> HAVING proceso = 'Automatas' AND temp <> 1
> ) AS TAB_TEMP
>
>De hecho no veo para que usas la consulta externa, y por que no pones
>"proceso" en el WHERE (de hecho si te fijas en el explain, la condicion
>se mueve dentro del seqscan de sendmail2 como si fuera una clausula
>WHERE); por que no usas mejor
>
> SELECT proceso, id_mail, to_mail
> FROM SENDMAIL2
> WHERE proceso = 'Automatas'
> GROUP BY proceso, id_mail, to_mail
> HAVING count(*) <> 1
>
>
>
>
>>QUERY PLAN
>>Subquery Scan tab_temp (cost=622577.68..622612.73 rows=2003 width=118)
>>-> HashAggregate (cost=622577.68..622592.70 rows=2003 width=110)
>> Filter: (count(*) <> 1)
>> -> Seq Scan on sendmail2 (cost=0.00..622327.31 rows=20029
>>width=110)
>> Filter: ((proceso)::text = 'Automatas'::text)
>>
>>
>
>Hum! Por favor haz "SET enable_hashagg to OFF" y luego tomas el explain
>analyze de la consulta.
>
>
>
>
>>shared_buffers = 50000
>>work_mem = 2097151
>>maintenance_work_mem = 2097151
>>
>>
>
>Cual es el razonamiento que te hizo poner esos valores en work_mem y
>maintenance_work_mem? Mas que seguro, son erroneos. Bajalos a valores
>razonables; unas decenas de megas puede ser, cuando mucho ...
>shared_buffers tambien es un poco excesivo IMHO.
>
>
>

--
If I have seen further it is by standing on the shoulders of the giants
Isaac Newton


From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: juan osorio <juan_osorio_ruiz(at)hotmail(dot)com>
Cc: juanky(dot)moral(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funciones plpgsql otra vez
Date: 2005-04-06 19:24:43
Message-ID: 20050406192443.GE9930@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola, entiendo poco la cochinada de abajo, pero creo que el problema es
que tienes que dar los valores para LIMIT y OFFSET fuera del string, de
manera que $1 y $2 sean expandidos por plpgsql antes de ejecutar la
consulta. O sea,

FOR tupla IN EXECUTE ''SELECT * FROM producto WHERE
vprod_st&lt;&gt;''||$4||'' ORDER BY ''||$3||''&nbsp; LIMIT '' || $1 ||
'' offset '' || $2

POR FAVOR no escribas en HTML. Muchas gracias.

On Wed, Apr 06, 2005 at 07:49:25AM +0000, juan osorio wrote:
> <html><div style='background-color:'><P>Holas, Si, nuevamente yo :(<BR><BR>La verdad es que esto de las comillas simples me están volviendo loco, ahora estoy intentando con otra función que es esta:</P>
> <P>CREATE OR REPLACE FUNCTION obtiene_productos(integer,integer,text,text) RETURNS SETOF RECORD AS '<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECLARE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tupla RECORD;</P>
> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BEGIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FOR tupla IN EXECUTE ''SELECT * FROM producto WHERE vprod_st&lt;&gt;''||$4||'' ORDER BY ''||$3||''&nbsp; LIMIT $1 offset $2'' LOOP<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return next tupla;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END LOOP;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return tupla;</P>
> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END;<BR>' language 'plpgsql';</P>
> <P>Al ejecutar la función de esta manera: obtiene_productos(20,40,'prod_nom','0') (suponiendo que el campo vprod_st es char(1) ) me sale este error:</P>
> <P>ERROR: ExecEvalParam: Unknown value for parameter (null) </P>
> <P>me parece que son las comillas el problema, estoy en lo cierto??? Muy agradecidos por la paciencia. Saludos <BR></P>
> <P>:(</P></div></html>

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Si no sabes adonde vas, es muy probable que acabes en otra parte.


From: Carlos Alberto Mÿffffffffffe1rquez Rey <carlos_marquez_rey(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Por favor una explicación
Date: 2005-06-13 17:56:29
Message-ID: 20050613175629.60108.qmail@web50801.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Compañeros de lista, por favor si me pudieran dar una
breve explicación para que son los siguientes
parametros que aparecen en el postgresql.conf

- Memory -

shared_buffers = 1000 # min 16, at least
max_connections*2, 8KB each
#work_mem = 1024 # min 64, size in KB
#maintenance_work_mem = 16384 # min 1024, size in KB
#max_stack_depth = 2048 # min 100, size in KB

los 3 ultimos estas inactivos, porque?

si debo activarlos, estan bien esos valores por
defecto o con que criterio debo elegir el valor que va
para cada parametro?

***********************************************************
Carlos Márquez
***********************************************************

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/


From: <dkuroki(at)dbas(dot)com(dot)ar>
To: carlos_marquez_rey(at)yahoo(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Por favor una explicación
Date: 2005-06-13 18:46:09
Message-ID: 9ojunUIe.1118688369.9172120.dkuroki@dbas.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Carlos,

fijate en
http://www.juancarlosmoral.es/hardware_tunning.html

es un documento en donde estan explicados estos parametros.

los 3 "inactivos" en realidad esta comentados y por eso toman su valor
por default.

Espero te sirva,

Dorian Kuroki
DBAS Argentina.

On 6/13/2005, "Carlos Alberto Mÿffffffffffe1rquez Rey"
<carlos_marquez_rey(at)yahoo(dot)com> wrote:

>Compañeros de lista, por favor si me pudieran dar una
>breve explicación para que son los siguientes
>parametros que aparecen en el postgresql.conf
>
> - Memory -
>
>shared_buffers = 1000 # min 16, at least
>max_connections*2, 8KB each
>#work_mem = 1024 # min 64, size in KB
>#maintenance_work_mem = 16384 # min 1024, size in KB
>#max_stack_depth = 2048 # min 100, size in KB
>
>los 3 ultimos estas inactivos, porque?
>
>si debo activarlos, estan bien esos valores por
>defecto o con que criterio debo elegir el valor que va
>para cada parametro?
>
>
>
>***********************************************************
>Carlos Márquez
>***********************************************************
>
>__________________________________________________
>Correo Yahoo!
>Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
>Regístrate ya - http://correo.espanol.yahoo.com/
>
>---------------------------(fin del mensaje)---------------------------
>TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)