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: [email protected] > To: [email protected]; [email protected] > 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/-- TIP 2: puedes desuscribirte de todas las listas simultáneamente (envía "unregister TuDirecciónDeCorreo" a [email protected])
