From: | Horacio Miranda <hmiranda(at)gmail(dot)com> |
---|---|
To: | uno dos <refreegrata(at)yahoo(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: optiminizacion de select (order by desc limit 1) |
Date: | 2010-05-13 04:22:05 |
Message-ID: | AANLkTinfUJBoc4YXkBlaMpIA6aWQ1Vu7s6KRrlvheLNQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
MAX ? en el fondo estas sacando el maximo. :D
Sobre la CPU, por definicion si marca tu CPU 1.0 estas usando solo un CORE
al 100 % ( y cada core resiste sin problemas 2.0). con 4.0 tu sistema se
comienza a trancar y sobre 8.0 preocupate. (Alpha es más lento, pero se
comporta mejor con más carga ese bicho).
2010/5/13 uno dos <refreegrata(at)yahoo(dot)com>
> 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á.
>
>
--
Saludos,
Horacio Miranda Aguilera.
RedHat Certified Engineer
DBA Oracle - Large databases
+56 2 8974500
From | Date | Subject | |
---|---|---|---|
Next Message | Christian Ortiz | 2010-05-13 04:33:00 | Re: optimizando Query |
Previous Message | Horacio Miranda | 2010-05-13 04:07:49 | Re: Consulta con logs para auditar |