Re: Performarce para 15 mil queries

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Performarce para 15 mil queries
Date: 2014-07-02 21:29:00
Message-ID: CAHMuS048Omteu+Jz+2UMOskAWjfM=JhqqZJRdWam75an2KsrRw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias, analisando sus respuestas creo que puedo empezar a probar
con lo siguiente:

* Leer el archivo de excel y convertirlo a un sql con la sintaxis de COPY.
* Insertar todos los registros en una tabla temporal
* Hacer un querie obteniendo todos los creditos pendientes de la tabla
principal.
* Obtener todos los registros de la nueva tabla haciendo un join a la
tabla principal
* Este join me traera cierta informacion de la tabla principal, la cual si
no existe entonces es un credito nuevo y hago un insert.
* Si ya existe entonces actualizo.

Supongo que es mas rapido hacer un select * from tabla_tmp; que un select *
from tabla_principal where numero in(..).

Haré algunas pruebas y les avisaré como resulta.

Saludos.

2014-07-02 15:39 GMT-05:00 Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>:

> Ivan Perales M. escribió:
>
> > El problema es que despues de 4 años, la tabla tiene casi 800 mil
> registros
> > y buscar uno a uno se hizo lentisimo. Lo que hize fue un query con un in
> de
> > los casi 15 mil valores, alomejor esto esta equivocado pero hasta ahora
> ha
> > sido lo mejor que me ha resultado y el tiempo mejoro muchisimo en
> > comparacion de realizar query por query, de casi 10 mins se bajo a 5
> mins.
>
> El IN (..) no siempre es lo mejor, dependiendo de si hay valores nulos.
> Considera reescribir la consulta usando EXISTS. Ahora, posiblemente lo
> mejor sea subir todos los 15000 nuevos registros a una nueva tabla,
> crearle un par de índices, analizar, y luego hacer UPDATE .. USING en la
> tabla grande.
>
> --
> Álvaro Herrera http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>

--
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2014-07-02 21:35:10 Re: Performarce para 15 mil queries
Previous Message Moises Alberto Lindo Gutarra 2014-07-02 20:42:01 Re: Funcion PostGis