| 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: | Whole Thread | Raw Message | 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
>
>
>
>
>
| 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 |