Skip site navigation (1) Skip section navigation (2)

Re: [SQL] ayuda con optimizar query

From: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
To: Aldo Quezada <huincha(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:07:15
Message-ID: AANLkTimnXqi1J8xbTREzLiqDyy_M9PZ3LfeReCKBZ5pr@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
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

pgsql-es-ayuda by date

Next:From: Aldo QuezadaDate: 2010-11-30 04:22:29
Subject: Re: [SQL] ayuda con optimizar query
Previous:From: Jaime CasanovaDate: 2010-11-30 01:57:12
Subject: Re: Execute y Update

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group