Re: Ayuda con indices

From: "Jorge Vidal Martinez" <jvm(at)utenet(dot)com(dot)ar>
To: "roger gue" <rockobop(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con indices
Date: 2005-05-25 03:25:17
Message-ID: 008201c560d9$e20eaef0$829145c8@XP
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

No, espera - las constraint son para mantener la integridad referencial.
Y los indices son para accesar ( acceder ) a la información.
Como lees, no son opuestos.
Podes usar las dos.

Muchos libros de Sql, dicen que las PK generan un indice default con los
atributos definido en ella.
Aunque por vicio profesional, yo los creo igual

Saludos

----- 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 6:26 PM
Subject: Re: [pgsql-es-ayuda] Ayuda con indices

Antes que nada Alicia y Jaime mil gracias por su colaboracion la
verdad q esta lista de ayuda es super .

Entonces dadas las tablas q tengo Jaime me aconsejarias utilizar
indices en vez de contraints asi como las manejo de esta forma

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;

o algo q no entiendo es q los indices generan los constraints para
hacer referencia a las tablas de dependecia.

On 5/24/05, Alicia Mc Millan Barrera <amcmillan(at)dgac(dot)cl> wrote:
> La verdar es que no los he utilizado, así que no se que va ahí, yo también
> soy nueva en posgresql
> pero me funcionó creando los índices como te lo envié anteriormente, lo
> que
> sí le quité el UNIQUE al crear el
> indice, porque como los tengo como llave primaria, esto actua similar como
> llave primaria, si necesitas,
> también cree una función para ingresar, selecionar, modificar y eliminar
> en
> una tabla y los probé desde
> psql.
>
> Por lo menos funcionan.
>
>
> ----- 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:58 PM
> Subject: Re: [pgsql-es-ayuda] Ayuda con indices
>
>
> 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
> > >
> > >
> >
> >
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista
>
>

---------------------------(fin del mensaje)---------------------------
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)

--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.322 / Virus Database: 266.11.16 - Release Date: 24/05/2005

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message David Prieto 2005-05-25 06:15:08 RE: Programa de Distribucion
Previous Message Joel Fuentes 2005-05-25 01:40:14 RE: Programa de Distribucion