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/
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 |