From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Expresiones en Primary Key |
Date: | 2005-04-28 15:03:30 |
Message-ID: | c2d9e70e050428080340064773@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 4/28/05, Oswaldo Hernández <listas(at)soft-com(dot)es> wrote:
> Jaime Casanova escribió:
> > On 4/26/05, Oswaldo Hernández <listas(at)soft-com(dot)es> wrote:
> >
> >>
> >>Estoy haciendo pruebas con indices utilizando expresiones en vez de una
> >>lista de campos.
> >>
> >
> > A que te refieres con usar expresiones como clave? una suma por ejemplo?
>
> Si.
>
> La sentencia 'create index' permite que el indice este formado por una
> expresion en vez de un campo simple.
>
> Por ejemplo, si tienes en una tabla precios y descuentos, pero las
> busquedas las realizas por precios netos puedes tener el indice con
> estos calculados:
>
> create table precios (
> precio numeric(10,2),
> porcentaje_dto numeric(3,2)
> );
> create index preciosnetos on precios
> (precio - (precio * porcentaje_dto / 100));
>
> En teoria, esto permite que el siguiente select realice la busqueda
> utilizando el indice, con el consiguiente aumento de velocidad:
>
> select *
> from precios
> where (precio - (precio * porcentaje_dto / 100)) = 100;
>
> (Corregirme si estoy equivocado)
>
Es correcto.
Y de alli el problema con los PK: 5 +3 = 4+4 (no se manteniene
unicidad, lo cual es requisito esencial para un PK)
como te aseguras que la expresion no te de valores duplicados? como
identificarias de forma unica un registro?
con los indices normales, claro esta, no hay problema y de hecho puede
ser util como muestra tu ejemplo
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2005-04-28 15:16:43 | Re: manejadores |
Previous Message | Julio Rivero | 2005-04-28 15:01:00 | Tips PG??? |