From: | Antonio Castro <acastro(at)ciberdroide(dot)com> |
---|---|
To: | cbustosb(at)articlynx(dot)cl |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] ayuda con Indices.... |
Date: | 2003-01-11 09:20:13 |
Message-ID: | Pine.LNX.4.21.0301110957500.688-100000@midas.ciberdroide.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Thu, 9 Jan 2003 cbustosb(at)articlynx(dot)cl wrote:
> dos cosas:
> a) debes "vacummear" la base de datos.
> b) si la velocidad es un factor preponderante, intenta cambiar el tipo de datos
> numeric(12,0) por otro (si son enteros, podria ser un int8). Hay mucha
> documentacion que habla sobre el pobre rendimiento de las operaciones sobre ese
> tipo de datos.
>
> Claudio
Tiene bastante sentido. El tipo numeric tiene precision arbitraria y
por esa razón puede que internamente las comparaciones usen un bucle
para comparar dígito a dígito. int(8) son 8 bytes y la comparación de
enteros de 8 bytes a nivel de código máquina es muy eficiente.
int(8) admite 18 dígitos.
De todas formas yo siempre que tropiezo con alguna operación que tarda
mucho más de lo deseado, compruebo el consumo de memoria y en caso de
consumo alto de swap, pruebo a aumentar la swap de forma muy considerable
porque si la operación por las razones que sean está demandando más memoria
virtual de la disponible la eficiencia desciende espectacularmente. En mi
caso era un join de dos tablas que tardaba unos 20 minutos. Al aumentar
la swap se redujo a unos 5 segundos.
En caso de detectar swaping en el sistema merece la pena hacer una prueba
muy sencilla.
En mi caso me bastó con añadir 500Kbytes de swap montados sobre un fichero
temporal (/tmp/swap).
dd if=/dev/zero of=/tmp/swap bs=1024 count=500000
chmod 600 /tmp/swap
mkswap /tmp/swap
swapon /tmp/swap
Un saludo
Antonio Castro
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Informática (Tienda de Linux)
\\W// <<< http://www.ciberdroide.com >>>
_|0 0|_
+-oOOO--(___o___)--OOOo----------------------------------------------------+
| . . . . U U . . . . Antonio Castro Snurmacher acastro(at)ciberdroide(dot)com |
| . . . . . . . . . . |
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>> |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
From | Date | Subject | |
---|---|---|---|
Next Message | Antonio Castro | 2003-01-11 09:28:51 | Re: [Pgsql-ayuda] Gran volúmen de datos. Oracle vs PostgreSQL |
Previous Message | Benjamin Alvarado | 2003-01-11 07:06:27 | [Pgsql-ayuda] Gracias |