Re: [SQL] ayuda con optimizar query

From: Aldo Quezada <huincha(at)gmail(dot)com>
To: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [SQL] ayuda con optimizar query
Date: 2010-11-30 04:22:29
Message-ID: AANLkTi=iPnZfiy7BOUFgfqo6UhvMNjFOG13xObVS9=Pu@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

1 - respuesta 2
2 - creo que aqui me falta alguno, lo chequeare
3 - el agrupamiento si funciona, podria optimizar esto, pasa que solo
quieren el primer email del cliente, asi que agrupe por id de cliente, creo
que aqui podria modificar algo

ahora hice un query que me reporta 9234 registros

2010/11/30 Guillermo Villanueva <guillermovil(at)gmail(dot)com>

> Varios:
> 1) los inner join son todos a través de PK vs FK ?
> 2) tenés indexados los campos: tbl_clientes.id_estado_cliente ,
> tbl_comunas.id_region y tbl_familia_productos.id_familia ?
> 3) o estoy muy anticuado? o el agrupamiento que hacés no está
> permitido?!?!? ya que tenés mas columnas en la proyección del select que en
> el group by!
> Saludos
>
> ~~~~~~~~~~~~~~~~
> Guillermo Villanueva
>
>
> El 29 de noviembre de 2010 21:48, Aldo Quezada <huincha(at)gmail(dot)com>escribió:
>
> 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
>>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2010-11-30 04:37:32 Re: [SQL] ayuda con optimizar query
Previous Message Guillermo Villanueva 2010-11-30 04:07:15 Re: [SQL] ayuda con optimizar query