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

Re: optimizar consulta

From: marcelo Cortez <jmdc_marcelo(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org, Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
Subject: Re: optimizar consulta
Date: 2009-03-30 20:20:58
Message-ID: 960468.17254.qm@web32001.mail.mud.yahoo.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Hola gente 


--- El sáb 28-mar-09, Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar> escribió:

> De: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
> Asunto: Re: [pgsql-es-ayuda] optimizar consulta
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Fecha: sábado, 28 de marzo de 2009, 7:07 pm
> 
> hahaaa...
> me olvidé de crearlo luego de reinstalar todo... y como
> las busquedas las hacia con los tsvector no me daba cuenta
> (sumenle programando dos programas a la vez para dos BD
> distintas... dos monitores. dos CPU....me estoy volviendo
> looocococoo).
> 
> Me parece ver que cuando usas muchos select muy complejos
> con BD muy grandes terminas haciendo index a muchos (o casi
> todos) los campos.
> Espero que esta frase no arme una guerra santa para
> determinar cual es el equilibrio entre 
> demora del mantenimiento de los index 
>    Vs         
> demora de las consultas.
Yo lo que hago es usar la frase "analyze is your friend" o sea aunque parezca muy basico lo comento a alquien que no lo conoce bien le puede servir.
1) hablitar en el log las consultas que demoran mucho.
log_min_duration_statement en algun numero razonable de millisegundos.
digamos 500 para agarrar los peces mas gordos.

2) habilitar el
log_statement= All 
Loguea todos los statements.


3) volver atras los logs.
y mirar el log. y reproducir cada statement que alli haya quedado logueado y luego analizar el query.
de especial interes en el "Where" "order" etc.
y luego construir indices y analizar los resultados antes y despues con explain analyze, sino mejora nada el query borrar el indice.(no dejar indices inutiles).
gralmente esto mejora mucho,. los indices usando la estrategia 
"index cover"	 o sea si el where incluye un campo digamos campo1="verde"
construyo un index sobre el campo1.
si la consulta es muy importante y frecuente podria crear un indice con un where en el indice.
create ..index ... where campo1="verde".
pero este es un caso particular.
Si todo fallta: la ultima estrategia es tratar de reescribir la query y volver al paso 1) 2) ... bla.
bueno espero no haberlos aburrido.
estaria bueno si alguien corrige o mejora lo ante dicho nos seria de utilidad a todos. 
Tener una Guia de como optimizar querys no es poca cosa,pienso que los newbies se verian muy beneficiados.
salu2
ato2
MDC 





> jajaaa..
> 
> 
> mil mil mil mil gracias... Jaime genioooooo
> 
> 
>       Yahoo! Cocina
> Recetas prácticas y comida saludable
> http://ar.mujer.yahoo.com/cocina/
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien
> responda no podrá leerlo
> 


      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

pgsql-es-ayuda by date

Next:From: Jhonny Velasquez c.Date: 2009-03-31 15:25:35
Subject: consulta de campos con fechas
Previous:From: Luis D. GarcíaDate: 2009-03-30 20:09:59
Subject: Re: Actualizacion de seguridad de PostgreSQL

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