Re: Problemas de tamaño/recodificacion

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: kernel <jucabapa(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problemas de tamaño/recodificacion
Date: 2019-08-08 11:56:59
Message-ID: f08d8450-9c21-1bf2-5614-662fe27657f0@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Cerdamente hablando se pueden cambiar los valores y recompilar el
Postgresql.

Pero eso no creo que sea muy sano a menos que tengas una gran maquina....

Ahora por que los XML las guardas ahi ? no es mejor tener un modelo
relacional ?

On 8/08/2019 11:47 PM, kernel wrote:
>
>
> El 08/08/2019 a las 12:59, Horacio Miranda escribió:
>>
>>
>> On 8/08/2019 9:49 PM, kernel wrote:
>>>
>>> El 08/08/2019 a las 10:35, Horacio Miranda escribió:
>>>> Debes indicar un poco mas de informacion, parametros, version de la
>>>> base, si estas usando XML parsers...  la consulta que estas
>>>> haciendo cuando se cae, etc...
>>>>
>>>> Lee el correo y revisa que estes entregando toda la informacion que
>>>> alguien de soporte te pueda preguntar.
>>>>
>>>> On 8/08/2019 8:21 PM, kernel wrote:
>>>>>
>>>>> Hola,
>>>>>
>>>>> Tengo una funcion plpgsql que me devuelve un valor xml de 0,5 GB,
>>>>> La codificacion que tiene la DB es UTF-8, como el cliente que
>>>>> utilizo es latin9, creo que a la hora del intercambio al hacer el
>>>>> cambio de encoding me da el problema
>>>>>
>>>>> ¿alguna idea?
>>>>>
>>>>> Gracias
>>>>>
>>>>>
>>>>> ERROR:  memoria agotada
>>>>>
>>>>> La cadena de 516574025 bytes es demasiado larga para la
>>>>> recodificación
>>>>>
>>>>>
>>>>>
>>>
>>> Gracias Horacio,
>>>
>>> Tengo un postgresql version 10.5 sobre opensuse
>>>
>>> La consulta es bastante larga, es una SELECT  a base de XMLELEMENT
>>> ,  XMLAGG y XMLATTRIBUTES                 , nada mas
>>>
>>> El problema se produce cuando la funcion  retorna el valor xml ;
>>> cuando sacamos muchos datos y el encoding del cliente es distinto
>>> del que tiene la base de datos.
>>>
>>> Si la cantidad de datos es grande y no tiene que cambiar el
>>> encoding, no hay problema, tampoco lo hay  si reducimos el volumen
>>> de datos y tenemos distinto encoding
>>>
>>> Supongo que tengo que tocar algo de memoria de postgres pero no se
>>> que parametro tocar y si es asi , ¿se puede hacer dinamicamente ?
>>>
>>> Un Saludo
>>>
>> Revisando  los codigos veo que el postgresql tiene un limite en el
>> mbutils
>> https://doxygen.postgresql.org/mbutils_8c.html
>>
>> if ((Size
>> <https://doxygen.postgresql.org/c_8h.html#af9ecec2d692138fab9167164a457cbd4>)
>> len >= (MaxAllocSize
>> <https://doxygen.postgresql.org/memutils_8h.html#a74a92b981e9b6aa591c5fbb24efd1dac>
>> / (Size
>> <https://doxygen.postgresql.org/c_8h.html#af9ecec2d692138fab9167164a457cbd4>)
>> MAX_CONVERSION_GROWTH
>> <https://doxygen.postgresql.org/pg__wchar_8h.html#a1a226786d77d0e2baecaafd3d5aafd10>))
>>
>> https://doxygen.postgresql.org/mbutils_8c.html
>> #define MaxAllocSize   ((Size
>> <https://doxygen.postgresql.org/c_8h.html#af9ecec2d692138fab9167164a457cbd4>)
>> 0x3fffffff) /* 1 gigabyte - 1 */
>> #define MAX_CONVERSION_GROWTH   4
>>
>> Es decir que el tamaño maximo del objeto puede ser basicamante 256M
>> menos 1/4 de byte.
>>
>> El mensaje de error dice que tu objeto es de 492.64M que es mayor al
>> limite.
>> Lo que se me ocurre es que vas a tener que usar un split para no
>> tener un XML más grande de 256M.
>>
>> Ignoro lo que guardas como XML, pero si son fotos tal ves sea mejor
>> guardar esos caracteres grandes como un CLOB ?
>>
>>>
>>>
>>>
>>>
> Si, eso debe de ser.
>
> El error esta en el server, si ejecutas con pgadmin y le pones antes
> de la llamada un set client_encoding = 'latin9' antes de la llamada a
> la funcion da el error, vas a los log del servidor y ahi esta.
>
> Lo que guardo es texto, es un xml , tiene unas 2400 facturas, con
> todos los campos posibles de impresión.
>
> Gracias, voy haber que se me ocurre
>
>
>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2019-08-08 12:10:13 Re: Problemas de tamaño/recodificacion
Previous Message kernel 2019-08-08 11:47:41 Re: Problemas de tamaño/recodificacion