RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Rapidéz

From: "Luis Enrique Sanchez Arce" <lesanchez(at)estudiantes(dot)uci(dot)cu>
To: "Mario Gonzalez" <gonzalemario(at)gmail(dot)com>
Cc: "Jaime Casanova" <systemguards(at)gmail(dot)com>, Fermín Bueno <paralasvainas(at)yahoo(dot)es>, "Leonel Nunez" <lnunez(at)enelserver(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Rapidéz
Date: 2006-06-27 14:10:35
Message-ID: 090BCFF87A1DAB4AA2B1DC2D58A0D657016F2E7A@ucixs90.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


He conseguido resolver mi problema.
Lo que pasaba era que no había creado ningún indice en la tabla donde hacía
la consulta y parece que postgres por defecto no indexa ningún dato a menos
que lo hagas manulamente.

Las consulatas mejoraron descomunalmente de 1200 ms a 6 ms.

Otra dudillas:

- cual de los algoritmos de indices (btree,hash,rtree,gist) es el mas eficiente y rápido a la hora de
selecionar campos de una tabla. ????

- Tengo dos tablas que se relacionan entre si por un campo que se llama id_principal que es un serial8
para que se genere automatico. Para poder insertar en una tabla tiene que existir previamente en la
otra. Como capturo el id_principal que se generó nuevo para no tener que hacer un select para luego
insertar en la otra tabla.

Gracias a todos por la ayuda me ha servido de mucho

-----Original Message-----
From: Mario Gonzalez [mailto:gonzalemario(at)gmail(dot)com]
Sent: Tue 27/06/2006 9:50
To: Luis Enrique Sanchez Arce
Cc: Jaime Casanova; Fermín Bueno; Leonel Nunez; pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Rapidéz

On 26/06/06, Luis Enrique Sanchez Arce <lesanchez(at)estudiantes(dot)uci(dot)cu> wrote:
>
> Bueno la tabla contiene 4 columnas y se llama principal
>
> id_principal(serial8) | resumen(varchar(64)) | cant_clasif(int4) | niv_cen(int4)
>
> la consulta es: select * from principal where resumen = 't/Mjznw8pPKEOXZNZvDUaZawuz4'
> se tarda 2 segundos y algo mas en retornarme los datos.
>

IMO Creo que lo que se demora podria considerarse como aceptables,
cada vez que haces una consulta sobre un campo tipo varchar haces
busquedas secuenciales, por lo que debe recorrer cada registro hasta
encontrar que resumen se paresca a lo que muestras ahi. Buscar por
datos enteros siempre va a ser mas rapido.

Te es posible hacer ese cambio??

> Pudieras explicarme en que consiste los indices y el EXPLAIN ANALYZE de la consulta

Ejecuta en tu consola de psql y nos mandas el resultado que arroja

EXPLAIN ANALIZE select * from principal where resumen =
't/Mjznw8pPKEOXZNZvDUaZawuz4';

--
http://www.advogato.org/person/mgonzalez/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message mbr 2006-06-27 14:13:11 Re: Simple SELECT sigue ERROR
Previous Message Alex Barrios 2006-06-27 14:07:57 Atrapar los errores de Postgres de Referencias...