From: | uno dos <refreegrata(at)yahoo(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | optiminizacion de select (order by desc limit 1) |
Date: | 2010-05-12 15:27:50 |
Message-ID: | 75721.3991.qm@web38405.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola lista. Miren, en un sistema que he desarrollado, de una parte a este tiempo he notado que postgresql se toma mucha CPU(100%)
ya, tengo dos dudas
Duda 1
¿Es normal que postgresql se tome el 100% de cpu pero por tiempo muy reducido, o aún así es mucho?(shared buffers de 150 mb, si, se que es bajo)
Duda 2
Mi segunda duda,: mirando y re-mirando mi código, para ver si puedo optimizar mis consultas lo única consulta que encuentro que no me gusta, y que quizás pudiera ser causante del lío es una del tipo
---------------------------------------------------------------------------------------------------------------------------------
select dato1 FROM tabla WHERE codigo_2=NEW.codigo_2 AND codigo_3=NEW.codigo_3 AND codigo_4=NEW.codigo_4 ORDER BY codigo DESC LIMIT 1 FOR UPDATE;
---------------------------------------------------------------------------------------------------------------------------------
Debo hacer varios tipos de consultas similares dentro de la función de un TRIGGER BEFORE, por un tema de validaciones, no puedo controlarlas, sólo a través del código de la aplicación, ya que en algunas ocasiones (según requisitos del jefe) debiera intervenirse directamente la base de datos.
Mi pregunta es
Puedo hacer esto "ORDER BY codigo DESC LIMIT 1" de alguna manera más óptima.
EXPLAIN de una de estas consultas.
"Limit (cost=21.57..21.57 rows=1 width=95)"
" -> Sort (cost=21.57..21.58 rows=5 width=95)"
" Sort Key: codigo"
" -> Index Scan using fki_tiene_pr_rx on existencia (cost=0.00..21.54 rows=5 width=95)"
" Index Cond: (codigo_producto = 686)"
En todo caso demora entre 35 y 45 ms.
P.D.: Es una típica aplicación web de inventarios(por eso el trigger before, que controla el stock), con una base de datos de apenas unos 50-60mb.
Bueno, eso es, Saludos por allá.
From | Date | Subject | |
---|---|---|---|
Next Message | Lennin Caro | 2010-05-12 15:50:55 | Re: duda con insert de muchas filas |
Previous Message | Alvaro Herrera | 2010-05-12 14:47:59 | Re: duda con insert de muchas filas |