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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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/

Browse pgsql-es-ayuda by date

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