Skip site navigation (1) Skip section navigation (2)

RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda?==?iso-8859-1?Q?] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ?==?iso-8859-1?Q?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?==?iso-8859-1?Q?] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ?==?iso-8859-1?Q?Rapidéz
Date: 2006-06-27 14:10:35
Message-ID: 090BCFF87A1DAB4AA2B1DC2D58A0D657016F2E7A@ucixs90.uci.cu (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group