Re: Ayuda con indices

From: roger gue <rockobop(at)gmail(dot)com>
To: Jorge Vidal Martinez <jvm(at)utenet(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con indices
Date: 2005-05-25 11:08:19
Message-ID: bd5aaa8a05052504082678d0fa@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

ahh ok ahora si tendo vlaro el panorama vale gracias por su a ayuda a
ambos y se q es lo q tengo q hacer en mi db saludos a ambos
suerte
Roger

On 5/24/05, Jorge Vidal Martinez <jvm(at)utenet(dot)com(dot)ar> wrote:
> 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

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message FENALCO - Mauricio Henao 2005-05-25 12:49:52 RE: Programa de Distribucion
Previous Message David Prieto 2005-05-25 06:15:08 RE: Programa de Distribucion