Re: Ayuda con indices

From: roger gue <rockobop(at)gmail(dot)com>
To: Alicia Mc Millan Barrera <amcmillan(at)dgac(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con indices
Date: 2005-05-24 16:58:32
Message-ID: bd5aaa8a05052409585343ac39@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

ahh ok hao si me qudo clara la idea, solo una preguntita mas
cuando voy a la ayuda de postgres me lanza lo siguiente:

CREATE [ UNIQUE ] INDEX nombre_indice ON tabla
[ USING nombre_acceso ] ( columna [ nombre_operador] [, ...] )
CREATE [ UNIQUE ] INDEX nombre_indice ON tabla
[ USING nombre_acceso ] ( nombre_funcion( r">columnale> [, ... ])
nombre_operador )

que puedo entender por nombre_acceso y nombre_operador, y si es q
tuviera las tablas

/*==============================================================*/
/* table: cronograma */
/*==============================================================*/
create table cronograma (
fecha date ,
cod_cronograma varchar(10),
constraint pk_cronograma primary key (cod_cronograma)
);

*==============================================================*/
/* table: actividad */
/*==============================================================*/
create table actividad (
cod_actividad varchar(10),
cod_cronograma varchar(8),
nombre_actividad varchar(30),
constraint pk_actividad primary key (cod_actividad)
);

/*==============================================================*/
/* table: tarea */
/*==============================================================*/
create table tarea (
cod_tarea varchar(10) not null,
cod_actividad varchar(10) null,
nombre_tarea varchar(50) null,
constraint pk_tarea primary key (cod_tarea)
);

alter table actividad
add constraint fk_activida_de_cronogra foreign key (cod_cronograma)
references cronograma (cod_cronograma)
on delete restrict on update cascade;

alter table tarea
add constraint fk_tarea_a_tiene_activida foreign key
(cod_actividad) references actividad (cod_actividad)
on delete restrict on update cascade;

si ya tengo esta base de datos, con llaves foraneas para cada tabla y
como se ve cada una dependiente de la otra podria hacer algo asi

CREATE INDEX ind_actv ON actiidad (cod_actividad);

ALTER TABLEe tareaADD INDEX tarea_activ PRIMARY KEY (cod_tarea) USING
INDEX ind_actv;

On 5/24/05, Alicia Mc Millan Barrera <amcmillan(at)dgac(dot)cl> wrote:
> No este solo estaba creando un indice a través de un script, que se llama
> ("creationDateUser")
> ahora cuando tu crees una función cuando filtres en un join, puedes hacerlo
> a través de ese índice, la consulta sería mas rápida.
> Ahora si tengo tablas que dependen de esta tabla, lo que hago es colocarle
> la llave primaria de la tabla padre en la tabla hijo y
> en la tabla hijo, coloco ambos campos como llave primaria de la tabla hijo
> es decir,
>
> CONSTRAINT "tablahijo_LOGIN_PK" PRIMARY KEY (login, xxxx) USING INDEX
> TABLESPACE indx_data
>
> , además creo indices separados en la tabla hijo.
> Y como te digo cuando creas la función puedes accesar mas rapidamente la
> tabla, solo para eso.
>
>
> ----- Original Message -----
> From: "roger gue" <rockobop(at)gmail(dot)com>
> To: "Alicia Mc Millan Barrera" <amcmillan(at)dgac(dot)cl>
> Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Tuesday, May 24, 2005 12:13 PM
> Subject: Re: [pgsql-es-ayuda] Ayuda con indices
>
>
> si no entiendo mal lo q hace es q si se lo asocia a una funcion q
> actualiza las fechas de ingreso de usuarios lo q hace el indice es
> generar una actualizacion en la tabla, y si es q hubieran
> dependendientes tb en ellas? espero haber entendido el ejemplo,
> garcias Alicia por tu ayuda
> suerte
>
> On 5/24/05, Alicia Mc Millan Barrera <amcmillan(at)dgac(dot)cl> wrote:
> > Aqui te envio un scrip de prueba, que crea una tabla con sus indices a
> modo
> > de ejemplo
> >
> > -- Creación tabla PRUEBA
> >
> >
> >
> > CREATE TABLE "PRUEBA"
> >
> > (
> >
> > login char(15) NOT NULL,
> >
> > passw char(10) NOT NULL,
> >
> > "creationDateUser" date NOT NULL,
> >
> > "cellPhone" numeric,
> >
> > CONSTRAINT "PRUEBA_LOGIN_PK" PRIMARY KEY (login) USING INDEX TABLESPACE
> > indx_data
> >
> > )
> >
> > WITHOUT OIDS TABLESPACE user_data;
> >
> > ALTER TABLE "PRUEBA" OWNER TO postgres;
> >
> > COMMENT ON TABLE "PRUEBA" IS 'Tabla de prueba';
> >
> > COMMENT ON COLUMN "PRUEBA".login IS 'Identificación del usuario';
> >
> > COMMENT ON COLUMN "PRUEBA".passw IS 'Contraseña del usuario';
> >
> > COMMENT ON COLUMN "PRUEBA"."creationDateUser" IS 'Fecha de Creación
> > Usuario';
> >
> > COMMENT ON COLUMN "PRUEBA"."cellPhone" IS 'Celular del usuario';
> >
> > CREATE UNIQUE INDEX "PRUEBA_login_IDX" ON "PRUEBA"
> >
> > (login)
> >
> > TABLESPACE indx_data;
> >
> >
> >
> > CREATE INDEX "PRUEBA_creationDateUser_IDX" ON "PRUEBA"
> >
> > ("creationDateUser")
> >
> > TABLESPACE indx_data;
> >
> > GRANT SELECT, UPDATE, INSERT, DELETE ON "PRUEBA" TO PUBLIC;
> >
> > ----- Original Message -----
> > From: "roger gue" <rockobop(at)gmail(dot)com>
> > To: <pgsql-es-ayuda(at)postgresql(dot)org>
> > Sent: Tuesday, May 24, 2005 11:45 AM
> > Subject: [pgsql-es-ayuda] Ayuda con indices
> >
> >
> > Hola atodos por lo q lei los indeces ayudan a optimizar la DB o algo
> > por el estilo con funciones pero aun no se como implementarlos, si
> > alguien me pudiese pasar un ejemplo pequeño de indices con funciones y
> > decirme q es loq hace o darme la dir de algun tutorial se los
> > agradeceria mucho, soy nuevo en esto de Postgresql
> > gracias
> > adios
> >
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 9: el optimizador ignorará el uso de recorridos de índice si los
> > tipos de datos de las columnas no coinciden
> >
> >
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-05-24 17:15:49 Re: Ayuda con indices
Previous Message Jaime Casanova 2005-05-24 16:56:00 Re: Ayuda con indices