Re: Ayuda con una consulta...

From: Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy>
To: Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar>
Cc: pssql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con una consulta...
Date: 2007-11-29 18:26:35
Message-ID: 474F045B.7010000@ort.edu.uy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

tenes indices sobre las tablas?, si no los tenes, se me ocurren los
siguientes (verificale los nombres) :
rrhh_cubo_publicado_810 cod_rrhh_importacion + cod_institucion
rrhh_cargos. cod_rrhh_importacion + cod_rrhh_escalafon +
cod_rrhh_nivel_ensenianza + numero_cargo
rrhh_detalles_liquidaciones_haberes cod_rrhh_importacion
rrhh_escalafones_universidades cod_rrhh_importacion +
cod_rrhh_escalafon + cod_cargo_universidad
rrhh_cargos cod_rrhh_importacion + cod_rrhh_escalafon +
cod_cargo_universidad

Saludos Fernando

Nicolás Domínguez Florit wrote:
> Tengo una consulta que me esta tardando mucho y me gustaría que cuando
> tengan unos minutos le echen un vistazo para ver si se les ocurre
> algo. Les paso las tabas, los registros de cada tabla, la consulta y
> el explain analyze.
>
> Uso un motor 8.2.4,
>
> Tablas:
> -------
>
> CREATE TABLE rrhh_cargos
> (
> numero_cargo numeric(9) NOT NULL,
> cod_ona_unidad_academica integer NOT NULL,
> cod_ona_rama character(4) NOT NULL,
> cod_ona_disciplina character(4) NOT NULL,
> cod_ona_area character(4) NOT NULL,
> cod_fuente_financiamiento numeric(2) NOT NULL,
> cod_rrhh_importacion integer NOT NULL,
> cuil_cuit numeric(11) NOT NULL,
> cod_cargo_universidad character(4) NOT NULL,
> cod_rrhh_estado_laboral integer NOT NULL,
> cod_rrhh_estado_cargo character(1),
> cod_rrhh_tipo_planta character(1) NOT NULL,
> cod_rrhh_situacion_laboral integer NOT NULL,
> cod_rrhh_agrupamiento_no_docente character(1),
> cod_rrhh_nivel_ensenianza integer NOT NULL,
> grado numeric(1) NOT NULL,
> horas_dedicacion numeric(2) NOT NULL,
> meses_antiguedad numeric(3) NOT NULL,
> anios_antiguedad numeric(2) NOT NULL,
> fecha_alta date NOT NULL,
> fecha_baja date,
> cod_dependencia numeric(2) NOT NULL,
> cod_sub_dependencia numeric(2) NOT NULL,
> programa numeric(2) NOT NULL,
> subprograma numeric(2) NOT NULL,
> proyecto numeric(2) NOT NULL,
> actividad numeric(2) NOT NULL,
> jefatura character(1) NOT NULL,
> cod_rrhh_equivalencia_cargo integer NOT NULL,
> cod_rrhh_escalafon character(1) NOT NULL,
> numero_cargo_persona integer,
> dedicacion_docente numeric(5,2),
> dedicacion_investigacion numeric(5,2),
> dedicacion_extension numeric(5,2),
> dedicacion_gestion numeric(5,2),
> CONSTRAINT rrhh_cargos_pkey PRIMARY KEY (numero_cargo,
> cod_rrhh_importacion),
> CONSTRAINT rrhh_cargos_cod_cargo_universidad_fkey FOREIGN KEY
> (cod_cargo_universidad, cod_rrhh_escalafon, cod_rrhh_importacion)
> REFERENCES rrhh_escalafones_universidades
> (cod_cargo_universidad, cod_rrhh_escalafon, cod_rrhh_importacion)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_fuente_financiamiento_fkey FOREIGN KEY
> (cod_fuente_financiamiento)
> REFERENCES fuentes_financiamiento (cod_fuente_financiamiento)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_ona_rama_fkey FOREIGN KEY (cod_ona_rama,
> cod_ona_disciplina, cod_ona_area)
> REFERENCES ona_jerarquias (cod_ona_rama, cod_ona_disciplina,
> cod_ona_area) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_ona_unidad_academica_fkey FOREIGN KEY
> (cod_ona_unidad_academica)
> REFERENCES ona_unidades_academicas (cod_ona_unidad_academica)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_agrupamiento_no_docente_fkey FOREIGN
> KEY (cod_rrhh_agrupamiento_no_docente)
> REFERENCES rrhh_agrupamientos_no_docentes
> (cod_rrhh_agrupamiento_no_docente) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_equivalencia_cargo_fkey FOREIGN KEY
> (cod_rrhh_equivalencia_cargo, cod_rrhh_escalafon)
> REFERENCES rrhh_equivalencias_cargos
> (cod_rrhh_equivalencia_cargo, cod_rrhh_escalafon) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_estado_cargo_fkey FOREIGN KEY
> (cod_rrhh_estado_cargo)
> REFERENCES rrhh_estados_cargos (cod_rrhh_estado_cargo) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_estado_laboral_fkey FOREIGN KEY
> (cod_rrhh_estado_laboral)
> REFERENCES rrhh_estados_laborales (cod_rrhh_estado_laboral)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_nivel_ensenianza_fkey FOREIGN KEY
> (cod_rrhh_nivel_ensenianza)
> REFERENCES rrhh_niveles_ensenianza (cod_rrhh_nivel_ensenianza)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_situacion_laboral_fkey FOREIGN KEY
> (cod_rrhh_situacion_laboral)
> REFERENCES rrhh_situaciones_laborales
> (cod_rrhh_situacion_laboral) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cod_rrhh_tipo_planta_fkey FOREIGN KEY
> (cod_rrhh_tipo_planta)
> REFERENCES rrhh_tipos_planta (cod_rrhh_tipo_planta) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_cargos_cuil_cuit_fkey FOREIGN KEY (cuil_cuit,
> cod_rrhh_importacion)
> REFERENCES rrhh_datos_personales (cuil_cuit,
> cod_rrhh_importacion) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT
> ) ;
> -- cantidad de registros: 1.749.254
>
>
> CREATE TABLE rrhh_escalafones_universidades
> (
> cod_cargo_universidad character(4) NOT NULL,
> cod_rrhh_equivalencia_cargo integer NOT NULL,
> cod_rrhh_escalafon character(1) NOT NULL,
> cod_rrhh_importacion integer NOT NULL,
> cod_rrhh_nivel_ensenianza integer NOT NULL,
> descripcion character varying(30) NOT NULL,
> dedicacion character varying(30) NOT NULL,
> horas_dedicacion numeric(2) NOT NULL,
> sueldo_basico numeric(10,2) NOT NULL,
> remunerativo_bonificable numeric(10,2) NOT NULL,
> remunerativo_no_bonificable numeric(10,2) NOT NULL,
> no_remunerativo_bonificable numeric(10,2) NOT NULL,
> no_remunerativo_no_bonificable numeric(10,2) NOT NULL,
> otra_remuneraciones numeric(10,2) NOT NULL,
> decreto_1610 numeric(10,2) NOT NULL,
> gastos_representacion numeric(10,2) NOT NULL,
> CONSTRAINT rrhh_escalafones_universidades_pkey PRIMARY KEY
> (cod_cargo_universidad, cod_rrhh_escalafon, cod_rrhh_importacion),
> CONSTRAINT
> rrhh_escalafones_universidades_cod_rrhh_equivalencia_cargo_fkey
> FOREIGN KEY (cod_rrhh_equivalencia_cargo, cod_rrhh_escalafon)
> REFERENCES rrhh_equivalencias_cargos
> (cod_rrhh_equivalencia_cargo, cod_rrhh_escalafon) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_escalafones_universidades_cod_rrhh_importacion_fkey
> FOREIGN KEY (cod_rrhh_importacion)
> REFERENCES rrhh_importaciones (cod_rrhh_importacion) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT
> rrhh_escalafones_universidades_cod_rrhh_nivel_ensenianza_fkey FOREIGN
> KEY (cod_rrhh_nivel_ensenianza)
> REFERENCES rrhh_niveles_ensenianza (cod_rrhh_nivel_ensenianza)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT
> ) ;
> -- cantidad de registros: 24.063
>
>
> CREATE TABLE rrhh_cubo_publicado_810
> (
> cod_rrhh_importacion integer,
> cod_pedido integer,
> cod_institucion integer,
> periodo date,
> fecha_desde timestamp without time zone,
> fecha_publicacion timestamp with time zone
> ) ;
> -- cantidad de registros: 283
>
>
> CREATE TABLE rrhh_detalles_liquidaciones_haberes
> (
> cod_rrhh_concepto_liquidacion_haberes numeric(6) NOT NULL,
> cod_rrhh_importacion integer NOT NULL,
> numero_cargo numeric(9) NOT NULL,
> importe numeric(12,2) NOT NULL,
> anio_retroactivo numeric(4) NOT NULL,
> mes_retroactivo numeric(2) NOT NULL,
> CONSTRAINT
> rrhh_detalles_liquidaciones_h_cod_rrhh_concepto_liquidacio_fkey
> FOREIGN KEY (cod_rrhh_concepto_liquidacion_haberes, cod_rrhh_importacion)
> REFERENCES rrhh_conceptos_liquidaciones_haberes
> (cod_rrhh_concepto_liquidacion_haberes, cod_rrhh_importacion) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT
> rrhh_detalles_liquidaciones_haberes_cod_rrhh_importacion_fkey FOREIGN
> KEY (cod_rrhh_importacion)
> REFERENCES rrhh_importaciones (cod_rrhh_importacion) MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT rrhh_detalles_liquidaciones_haberes_numero_cargo_fkey
> FOREIGN KEY (numero_cargo, cod_rrhh_importacion)
> REFERENCES rrhh_cargos (numero_cargo, cod_rrhh_importacion)
> MATCH SIMPLE
> ON UPDATE RESTRICT ON DELETE RESTRICT
> ) ;
> -- cantidad de registros: 29.566.415
>
>
> Consulta:
> ---------
>
> explain analyze
> select t.periodo,
> t.cod_institucion,
> ca.numero_cargo,
> ca.cuil_cuit,
> ca.cod_rrhh_escalafon,
> ca.cod_cargo_universidad,
> eu.descripcion as categ_univ_descripcion,
> eu.dedicacion as categ_univ_dedicacion,
> ca.cod_rrhh_equivalencia_cargo,
> ca.cod_ona_unidad_academica,
> ca.cod_fuente_financiamiento,
> ca.cod_rrhh_estado_laboral,
> ca.cod_rrhh_estado_cargo,
> ca.cod_rrhh_tipo_planta,
> ca.cod_rrhh_situacion_laboral,
> ca.cod_rrhh_nivel_ensenianza,
> ca.meses_antiguedad,
> ca.horas_dedicacion,
> ca.numero_cargo_persona as nro_cargo_pers,
> ca.cod_rrhh_agrupamiento_no_docente,
> d.cod_rrhh_concepto_liquidacion_haberes,
> d.anio_retroactivo,
> d.mes_retroactivo,
> d.importe,
> 1 as Cant_ConceptosXCargos
> from rrhh_cargos ca,
> rrhh_escalafones_universidades eu,
> rrhh_cubo_publicado_810 t,
> rrhh_detalles_liquidaciones_haberes d
> where t.cod_institucion<>7 and
> ca.cod_rrhh_importacion=t.cod_rrhh_importacion
> and eu.cod_cargo_universidad = ca.cod_cargo_universidad
> and eu.cod_rrhh_importacion = ca.cod_rrhh_importacion
> and eu.cod_rrhh_escalafon = ca.cod_rrhh_escalafon
> and (ca.cod_rrhh_escalafon = 'D') and (ca.cod_rrhh_nivel_ensenianza = 1 )
> and d.cod_rrhh_importacion=t.cod_rrhh_importacion
> and d.numero_cargo = ca.numero_cargo
>
>
> Explain Analyze:
> -----------------
>
> http://explain-analyze.info/query_plans/1499-nicolasdom-siu
>
>
> Antes de correr la consulta se habia realizado:
> analyze rrhh_cargos;
> analyze rrhh_escalafones_universidades;
> analyze rrhh_cubo_publicado_810;
> analyze rrhh_detalles_liquidaciones_haberes ;
>
>
> Muchas Gracias!
>
> Nicolas.
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-11-29 18:30:27 Re: Inserción de datos lento.
Previous Message Rodriguez Fernando 2007-11-29 18:04:59 Re: SQLSTATE[08006] [7] server closed the connectionunexpectedly....