david buenaño escribió:
> Hola, tengo una duda, levante la siguiente consulta:
> 
> SELECT
> '01.INCLUSION' "ESTADO RELACION", '01.DISCAPACIDAD', "count"(*)
> FROM bjg_pago
> WHERE pag_estado = 'ACT' and pep_id = 25
> and pag_benecedula NOT in (select pag_benecedula from bjg_pago where pep_id
> = 24 )
> and pag_tipobeneficiario = 'DISCAPACIDAD'
> GROUP BY 2
> 
> y el tiempo de la consulta es de 54 s.
> 
> reemplace la condición del where apuntando a otra relación de la misma base
> de datos y se redujo el tiempo de respuesta a 0,469 s
> 
> la nueva consulta es:
> 
> SELECT
> '01.INCLUSION' "ESTADO RELACION", '01.DISCAPACIDAD', "count"(*)
> FROM bjg_pago
> WHERE pag_estado = 'ACT' and pep_id = (SELECT pep_id from bjg_periodopago
> where pep_estado = '1')
> and pag_benecedula NOT in (select pag_benecedula from bjg_pago where pep_id
> = (SELECT pep_id -1 from bjg_periodopago where pep_estado = '1') )
> and pag_tipobeneficiario = 'DISCAPACIDAD'
> GROUP BY 2
> 
> deseo conocer porque se redujo tanto el tiempo de la consulta

Ejecuta EXPLAIN ANALYZE de ambas consultas y adjunta un archivo de
texto con lo que emite, teniendo cuidado de no dañar el formato del
texto (indentación y preservas las líneas largas).

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a