From: | Felipe Fernandez <danielfm(at)teleline(dot)es> |
---|---|
To: | postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Mejorar Rendimiento |
Date: | 2004-07-13 05:11:31 |
Message-ID: | 40F36F03.90308@teleline.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro Herrera wrote:
>On Tue, Jul 13, 2004 at 04:39:13AM +0100, Felipe Fernandez wrote:
>
>
>
>>CREATE TABLE abonados (
>> codigo numeric NOT NULL PRIMARY KEY,
>> nombre text,
>> apellido1 character varying(40),
>> apellido2 character varying(40),
>> direccion1 text,
>> direccion2 character varying(40),
>> direccion3 character varying(40),
>> localidad integer,
>> provincia integer,
>> codigopostal character varying(6),
>> telefono1 character varying(9),
>> telefono2 character varying(9),
>> observaciones text,
>> actividad1 integer,
>> actividad2 integer,
>> tipoalta smallint,
>> estado smallint
>>);
>>
>>
>
>Es muy desaconsejable que la llave primaria sea NUMERIC. Mucho mejor es
>tener INTEGER o BIGINT si crees que superaras los cuatro mil millones.
>
>Tienes algun indice en esta tabla, aparte del indice de la llave
>primaria?
>
>Si tuvieras el siguiente indice
>CREATE INDEX foo on abonados (upper(apellido1) varchar_pattern_ops);
>
>podrias probar
>
>EXPLAIN select * from abonados where upper(apellido1) like 'FERNANDEZ%'
>and upper(nombre) like 'FELIPE%' order by apellido1,apellido2,nombre;
>
>Ojo con los % ... No puedes poner % ni _ al principio, de lo contrario
>no se usara el indice.
>
>
>
He podido crea el indice pero la consulta sigue siendo LENTA, casi para
el pc y eso que tengo un PIV a 2,66 con 160 en disco y 750M en ram.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2004-07-13 05:16:22 | Re: Mejorar Rendimiento |
Previous Message | Alvaro Herrera | 2004-07-13 04:49:08 | Re: Mejorar Rendimiento |