From: | Jose Maria Mencia Fernandez <jmencia(at)alimarket(dot)es> |
---|---|
To: | PostgreEs <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Ayuda con explain |
Date: | 2007-05-09 11:05:09 |
Message-ID: | 1178708710.3282.11.camel@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas a todos,
les pediría un poco de luz acerca de cómo interpretar el siguiente plan
de ejecución y si existe posibilidad de mejora.
QUERY:
explain
select emp.id_empresa, fil.id_filiacion, emp.id_estado,
emp.id_tipo_balance, emp.id_pais, emp.id_provincia,
emp.id_municipio, emp.domicilio, emp.id_tipo_via,
emp.poblacion, emp.distrito, emp.email, emp.no_lssi, emp.web,
emp.telefono, emp.fax, emp.usuario, emp.consolidado, emp.id_cnae,
emp.id_grupo_empresa, fil.nombre,fil.cif_nif, emp.denominacion
from red_empresas emp, com_filiaciones fil
where emp.id_filiacion = fil.id_filiacion
and fil.es_empresa='TRUE'
and emp.id_pais='ESP';
PLAN:
Hash Join (cost=85.60..120.13 rows=125 width=246)
Hash Cond: ("outer".id_filiacion = "inner".id_filiacion)
-> Seq Scan on red_empresas emp (cost=0.00..30.07 rows=642
width=220)
Filter: ((id_pais)::text = 'ESP'::text)
-> Hash (cost=83.95..83.95 rows=659 width=30)
-> Seq Scan on com_filiaciones fil (cost=0.00..83.95 rows=659
width=30)
Filter: es_empresa
(7 filas)
TABLAS:
CREATE TABLE red_empresas (
id_empresa INTEGER NOT NULL DEFAULT
nextval('red_empresas_id_empresa_seq'),
denominacion VARCHAR(255)NOT NULL,
id_filiacion INTEGER NOT NULL,
id_estado INTEGER NOT NULL,
id_tipo_balance INTEGER NOT NULL,
id_pais VARCHAR(3) NOT NULL,
id_provincia VARCHAR(2) ,
id_municipio VARCHAR(3) ,
id_tipo_via INTEGER NOT NULL ,
domicilio VARCHAR(255),
poblacion VARCHAR(255),
distrito VARCHAR(3) ,
email VARCHAR(255),
no_lssi BOOL ,
web VARCHAR(255),
telefono VARCHAR(20) ,
fax VARCHAR(20) ,
usuario VARCHAR(20) ,
consolidado BOOL NOT NULL DEFAULT false,
id_cnae VARCHAR(5) ,
id_grupo_empresa INTEGER ,
aud_fcr TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT
CURRENT_TIMESTAMP,
aud_ucr VARCHAR(20) NOT NULL DEFAULT CURRENT_USER,
aud_far TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT
CURRENT_TIMESTAMP,
aud_uar VARCHAR(20) NOT NULL DEFAULT CURRENT_USER,
CONSTRAINT red_empresas_pk
PRIMARY KEY (id_empresa),
CONSTRAINT red_empresas_com_filiaciones_fk
FOREIGN KEY (id_filiacion) REFERENCES com_filiaciones
(id_filiacion)
ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT red_empresas_com_paises_fk
FOREIGN KEY (id_pais) REFERENCES com_paises (id_pais)
ON DELETE RESTRICT ON UPDATE RESTRICT
....
);
CREATE INDEX red_empresas_ind1 ON red_empresas (id_filiacion);
CREATE INDEX red_empresas_ind2 ON red_empresas (id_pais);
--------
CREATE TABLE com_filiaciones (
id_filiacion INTEGER NOT NULL DEFAULT
nextval('com_filiaciones_id_filiacion_seq'),
cif_nif VARCHAR(15),
es_empresa BOOL NOT NULL DEFAULT false,
nombre VARCHAR(255) NOT NULL,
apellido1 VARCHAR(60),
apellido2 VARCHAR(60),
no_lopd BOOL,
observaciones VARCHAR(255),
aud_fcr TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT
CURRENT_TIMESTAMP,
aud_ucr VARCHAR(20) NOT NULL DEFAULT CURRENT_USER,
aud_far TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT
CURRENT_TIMESTAMP,
aud_uar VARCHAR(20) NOT NULL DEFAULT CURRENT_USER,
CONSTRAINT com_filiaciones_pk PRIMARY KEY (id_filiacion)
);
Muchas gracias de antemano.
From | Date | Subject | |
---|---|---|---|
Next Message | Agustin Casiva | 2007-05-09 11:32:38 | Re: error compilacion gcc a g++ |
Previous Message | Victor Lopez | 2007-05-09 08:33:27 | forzar una respuesta 'boolean' |