[SQL] ayuda con optimizar query

From: Aldo Quezada <huincha(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: [SQL] ayuda con optimizar query
Date: 2010-11-30 00:48:32
Message-ID: AANLkTim3AeQj8f341yedDsbeWpb_WAgrXAdCNrmZni1i@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola amigos, tengo un pequeño problema con optimizar un query , pasa que
tengo varias tablas y de estas se crean segmentos para marketing

tengo los clientes ( unos 13mil hasta el momento ) cada cliente tiene 1 o
mas mails , ademas tienen transacciones que pueden ser de servicio tecnico o
ventas los cuales se pueden segmentar por familias de productos, segmentar
por regiones o comunas ( de Chile)
ejemplo de query que me crea

SELECT tbl_regiones.region,
tbl_regiones.reg_descripcion,tbl_comunas.descripcion,
tbl_clientes.id_cliente,
tbl_clientes.rut_cliente,
tbl_clientes.dv_cliente,
tbl_clientes.nombre_cliente,
tbl_clientes.paterno_cliente,
tbl_clientes.materno_cliente,
tbl_clientes.sexo_cliente,
tbl_clientes.fnac_cliente,
tbl_clientes.direccion_cliente,
tbl_clientes.id_comuna,
tbl_clientes.fono_comercial,
tbl_clientes.celular,
tbl_clientes.fono_particular,
tbl_mails.mail_cliente,
tbl_familia_productos.descripcion_familia,
tbl_familia_productos.producto_familia
FROM tbl_clientes

Inner Join tbl_mails ON tbl_clientes.id_cliente = tbl_mails.id_cliente
Inner Join tbl_comunas ON tbl_clientes.id_comuna = tbl_comunas.id_comuna
Inner Join tbl_regiones ON tbl_comunas.id_region = tbl_regiones.id_region
Inner Join tbl_transacciones ON tbl_transacciones.id_cliente =
tbl_clientes.id_cliente
Inner Join tbl_familia_productos ON tbl_transacciones.id_familia =
tbl_familia_productos.id_familia

WHERE
tbl_clientes.id_estado_cliente = 1
AND tbl_comunas.id_region in(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
AND tbl_familia_productos.id_familia in (1,3,2)

group by tbl_clientes.id_cliente

estos querys se crean dinamicos, ya que se segmenta a traves de una pagina
php donde se seleccionan los datos a segmentar

se podra optimizar mejor estos querys ya que necesito sacar la cantidad de
prospectos y el query que me arroja unos 5 mil o mas registros se demora
unos 5 minutos (es mucho e indexe las tablas ya que la base no la cree yo y
no habian echo esto), se podran crear vistas para poder bajar el tiempo ? ya
que crea una lista de segmentaciones y sus respectivos prospectos , yo les
dije que lo obviaran por el momento porque es una carga muy grande al
mostrar 10 o 15 segmentos

Saludos

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Perla 2010-11-30 01:14:16 Re: Execute y Update
Previous Message Yadira Lizama Mue 2010-11-29 22:17:41 escape