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 12:10:13 |
Message-ID: | f4192f75-a8ee-9412-8e87-64ac28e24b07@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Pregunta.
No sera que estas guardando el XML como Texto y no como XML ?
Es posible ver un ejemplo de un insert, y un select de un ejemplo
ofuscado de lo que estas haciendo.
Algo me dice que haciendo un cambio menos el postgres no solo va hace lo
que quieres, va andar muy rapido.
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 | Alvaro Herrera | 2019-08-08 15:44:57 | Re: Particionar tabla existente PG11 |
Previous Message | Horacio Miranda | 2019-08-08 11:56:59 | Re: Problemas de tamaño/recodificacion |