Re: Mejorar Rendimiento

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.

In response to

Responses

Browse pgsql-es-ayuda by date

  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