BUG #3642: Tiempos de consultas diferentes - Mailing list pgsql-bugs
From | Arley Wilches Marcelo |
---|---|
Subject | BUG #3642: Tiempos de consultas diferentes |
Date | |
Msg-id | 200709281649.l8SGn2nc008357@wwwmaster.postgresql.org Whole thread Raw |
Responses |
Re: BUG #3642: Tiempos de consultas diferentes
|
List | pgsql-bugs |
The following bug has been logged online: Bug reference: 3642 Logged by: Arley Wilches Marcelo Email address: arley.wilches@gmail.com PostgreSQL version: 8.2 Operating system: Linux Ubuntu Server 7.04 Description: Tiempos de consultas diferentes Details: Hola, tengo una aplicacion de alrededor 100 tablas, todas con sus respectivas llaves foraneas. Tengo una consulta que tiene alrededor de 12 tablas involucradas, 6 subquerys. El problemas que tengo es que al realizar la consulta por primera vez se puede demorar alrededor de 300 a 500 ms, despues de la 5 vez ejecutada con un intervalo de tiempo de 2 segundos la respuesta de la consulta se llega a demorar mas de 177.552 ms. Ya estuve revisando opciones para la creacion de indices, cambio en los valores de postgresql.conf para el performance de Postgres, pero la verdad ningun cambio realizado me ha servido para poder arreglar el problema. Es una aplicacion que esta corriendo en Apache 2 y con php 5.2.1. De antemano Muchisimas Gracias por cualquier luz que me puedan dar para poder resolver este tema. Anexo la consulta que ejecuto. SELECT COUNT(DATOS.negocio_id) AS total FROM (SELECT negocio_razonsocial AS RAZON_SOCIAL,negocio_id, negocio_identificador AS IDENTIFICADOR, negocio_direccion AS DIRECCION, usuario_nombre||' '||(CASE WHEN usuario_apellido <>'' THEN usuario_apellido ELSE ' ' END) AS PROPIETARIO, convenio_nombre AS CONVENIO, ( CASE WHEN A.municipio_sucursal_id IS NOT NULL THEN A.municipio_sucursal_id WHEN A.municipio_depende_mun_id IS NOT NULL THEN ( SELECT Z.municipio_sucursal_id FROM municipio Z WHERE Z.municipio_id = ( SELECT J.municipio_depende_mun_id FROM municipio AS J WHERE J.municipio_id = A.municipio_id ) )END ) AS sucursal_id, A.municipio_departamento_id, A.municipio_id, localidad_id, barrio_id, negocio_convenio_id, evaluacion_tarifa_finalidad_musica_id, evaluacion_tarifa_nivel_socioeconomico_id, evaluacion_tarifa_categoria_id, estado_juridico_negocio_estado_id, negocio_estado_negocio_estado_id FROM negocio, barrio, localidad, municipio AS A, usuario, convenio, evaluacion_tarifa, pago_periodo, negocio_estado_negocio, estado_juridico_negocio, estado_juridico, estado_negocio WHERE negocio_id NOT IN ( SELECT liquidacion_negocio_id FROM liquidacion WHERE liquidacion_activo = true AND ( ( liquidacion_fecha_limite >= '2007-09-28' AND liquidacion_paga = 'f' ) OR (liquidacion_validez >= '2007-09-28' AND liquidacion_paga = 't') OR ( liquidacion_anulado = false ) ) ) AND estado_juridico_negocio_estado_id IN( SELECT estado_juridico_id FROM estado_juridico WHERE estado_juridico_bloquea = false ) AND negocio_activo = 't' AND negocio_utiliza_musica = 't' AND usuario_id = negocio_usuario_id AND negocio_barrio_id = barrio_id AND barrio_localidad_id = localidad_id AND localidad_municipio_id = A.municipio_id AND convenio_id = negocio_convenio_id AND evaluacion_tarifa_negocio_id = negocio_id AND evaluacion_tarifa_activo = 't' AND pago_periodo_negocio_id = negocio_id AND pago_periodo_activo = 't' AND pago_periodo_estado_pago_id = 1 AND pago_periodo_periodo = '2007' AND estado_juridico_negocio_negocio_id = negocio_id AND estado_juridico_negocio_activo = true AND estado_juridico_negocio_estado_id = estado_juridico_id AND negocio_estado_negocio_negocio_id = negocio_id AND negocio_estado_negocio_activo = true AND negocio_estado_negocio_estado_id = estado_negocio_id ) DATOS, sucursal, zona WHERE sucursal.sucursal_id = DATOS.sucursal_id AND sucursal_zona_id = zona_id AND sucursal_zona_id = 7 AND sucursal.sucursal_id = 9
pgsql-bugs by date: