RE: [Fwd: Re: Consulta, a priori, sencilla]

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <ra_duque(at)yahoo(dot)com(dot)mx>, <dpto(dot)programacion(at)grupo-int(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [Fwd: Re: Consulta, a priori, sencilla]
Date: 2008-12-30 14:43:03
Message-ID: BLU137-W144DFCA0F46E70FEFF15C2E3E70@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Siempre compila y listo. Uso mi debian y PostgreSQL 8.3.5 , claro desde los fuentes ademas uso cosas que no creo que vengan en los paquetes como SSL, perl y otras cosillas

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087

* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*

----------------------------------------
> From: ra_duque(at)yahoo(dot)com(dot)mx
> To: dpto(dot)programacion(at)grupo-int(dot)com; pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [Fwd: Re: [pgsql-es-ayuda] Consulta, a priori, sencilla]
> Date: Tue, 30 Dec 2008 06:48:45 -0500
>
>
>
> --------------------------------------------------
> From: ""I.N.T. - Programación""
> Sent: Tuesday, December 30, 2008 6:43 AM
> To: "Raúl Andrés Duque Murillo"
> Subject: Re: [Fwd: Re: [pgsql-es-ayuda] Consulta, a priori, sencilla]
>
>> Raúl Andrés Duque Murillo escribió:
>>>>
>>>>
>>>> From: "I.N.T. - Programación"
>>>> Sent: Tuesday, December 30, 2008 6:03 AM
>>>> To: POSTGRESQL - Ayuda
>>>> Subject: [Fwd: Re: [pgsql-es-ayuda] Consulta, a priori, sencilla]
>>>>
>>>>
>>>> El campo 'apellidos' no es 'varchar' sino 'char(80)'
>>>>
>>>> Realizando el índice de la forma:
>>>>
>>>>
>>>> CREATE INDEX envios_idx01 ON envios USING btree(apellidos
>>>> varchar_pattern_ops);
>>>>
>>>> me da el siguiente error:
>>>>
>>>> ERROR: la clase de operadores "varchar_pattern_ops" no acepta el tipo
>>>> de datos character
>>>>
>>>> pero en cambio he utilizado el índice:
>>>>
>>>> CREATE INDEX envios_idx01 ON envios USING btree(apellidos
>>>> bpchar_pattern_ops);
>>>>
>>>> ¡¡¡Y FUNCIONA PERFECTAMENTE!!!
>>>>
>>>
>>> Si ... asumí que era varchar pero realmente se debe usar un
>>> xxxx_pattern_ops dependiendo de si es varchar, char, text, etc.
>>>
>>> Porque usas un char para un apellido? Recuerda que los char son de
>>> longitud FIJA así que si en promedio un apellido tiene 10 caracteres
>>> estás desperdiciando 70 caracteres por cada registro en la tabla envios.
>>> Ahora si tienes 1.677.229 registros estas desperdiciando en total aprox.
>>> 1.677.229 x 70 = 117MB, sin contar caracteres adicionales por la
>>> codificación ni códigos adicionales del motor.
>>>
>> Ya lo sé, pero resulta que la BBDD no es mía, digamos que la heredé... Yo
>> siempre utilizo 'varchar' sin ningún tipo de problema.
>>
>> Lo que probablemente hagamos es regenerarla completamente (tal y como yo
>> la diseñaría, char por varchar, etc...) y realizar un pg_restore de la
>> copia de seguridad (si es que traga). Si es posible también cambiaremos a
>> locale 'C', hablaré con el administrador del sistema.
>>
>
> Evalua bien el tema de pasarte a locale 'C' ... no podrás usar sino
> caracteres convencionales ... nada de tildes, eñes, etc.
>
>>> También mira la posibilidad de actualizar tu versión de postgresql ...
>>> los cambios que se han realizado son bastantes y el performance del motor
>>> ha mejorado en 30% (este porcentaje lo he "escuchado", no lo he medido
>>> pero se "siente").
>>>
>> Según me comenta el administrador la distribución de postgreSQL estable
>> para Debian (que es la que lleva el servidor) no es la 8.3, sino la 7.x
>> (la que sea). Lo intentaremos...
>
> Si ... esto de las versiones estables para Debian es una de las grandes
> críticas que se le hace a Debian (ubuntu) ... aunque mi distro favorita es
> Debian. Se pueden usar
> backports(http://packages.debian.org/etch-backports/), una fuente testing o
> compilar desde fuentes para tener lo mejor de postgresql en tu Debian
>
>>> Me alegro mucho que hallas solucionado tu problema.
>>>
>>> Atentamente,
>>>
>>> RAUL DUQUE
>>> Bogotá, Colombia
>>>
>>>
>>>>
>>>> Muchísimas gracias a todos por vuestra ayuda...
>>>>
>>>>
>>>
>>> -------- Mensaje original -------- Asunto: Re: [pgsql-es-ayuda] Consulta,
>>> a priori, sencilla
>>> Fecha: Mon, 29 Dec 2008 11:14:09 -0500
>>> De: Raul Andres Duque
>>> Para: "I.N.T. - Programación"
>>> Referencias:
>>>
>>>
>>>
>>> ----- Original Message ----- From: ""I.N.T. - Programación""
>>>
>>> To:
>>> Sent: Monday, December 29, 2008 10:16 AM
>>> Subject: [pgsql-es-ayuda] Consulta, a priori, sencilla
>>>
>>>
>>>> Buenas,
>>>>
>>>> Tengo una BBDD con una tabla llamada 'envios' de 1.677.229 registros
>>>>
>>>> La consulta es:
>>>>
>>>> SELECT * FROM envios WHERE apellidos LIKE 'LOQUESEA%'
>>>>
>>>> y está creado el índice:
>>>>
>>>> CREATE INDEX envios_idx01 ON envios USING btree(apellidos);
>>>>
>>>> La consulta tarda casi 50seg. en ejecutarse y es un tiempo inadmisible.
>>>> Está claro que no utiliza el índice ¿porqué?
>>>>
>>>
>>> recuerda que si tu locale es diferente a 'C', debes los indices con
>>> varchar_pattern_ops. En este link encuentras la info correspondiente:
>>> http://www.postgresql.org/docs/8.3/static/indexes-opclass.html
>>>
>>>
>>>
>>> Atentamente,
>>>
>>>
>>>
>>> RAUL DUQUE
>>>
>>>
>>>> He realizado VACUUM FULL ANALYZE varias veces, regenerado el índice y
>>>> nada
>>>>
>>>> ¿Alguna sugerencia?
>>>>
>>>> Gracias de antemano --
>>>> TIP 4: No hagas 'kill -9' a postmaster
>>>
>>>
>>>
>>>
>>>
>>> __________ Information from ESET Smart Security, version of virus
>>> signature database 3722 (20081229) __________
>>>
>>> The message was checked by ESET Smart Security.
>>>
>>> http://www.eset.com
>>>
>>
>>
>> __________ Information from ESET Smart Security, version of virus
>> signature database 3722 (20081229) __________
>>
>> The message was checked by ESET Smart Security.
>>
>> http://www.eset.com
>>
>>
>>
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html

_________________________________________________________________
Stay up to date on your PC, the Web, and your mobile phone with Windows Live
http://clk.atdmt.com/MRT/go/119462413/direct/01/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2008-12-30 14:53:26 Como leeer el explain analyze
Previous Message Edwin Quijada 2008-12-30 14:41:08 RE: [Fwd: Re: Consulta, a priori, sencilla]