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

Re: vb Problemas al migrar de Access a Postgres.(recordset muy lento)

From: "Julio Misael Gutierrez" <jmisaelg(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: vb Problemas al migrar de Access a Postgres.(recordset muy lento)
Date: 2007-02-25 00:38:09
Message-ID: 2e0736bd0702241638s2417ce4bmcbe863595ba922b8@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Buen día,

La recomendación de revisar los indices es valida, sería bueno que
enviaras a la lista los indices que le has creado a la tabla.

permiteme suguerirte algunas cosas, para que pruebes y nos envies los
resultados...
Respecto a GetRows(),
prueba abrir el recodet de esta forma:
dim rsTec as ADODB.Recordset
.
.
.
set  rsTec = cnTec.execute(SQL)
'despues desconecta el recordset
set rsTec.ActiveConnection = Nothing
trPen() = rsTec.GetRows()
rsTec.Close

Respecto al segundo caso,
abre el recordset de la misma forma que el anterior y luego desconectalo
antes de entrar do while.
para la instrucción INSERT que estas haciendo te suguiero que uses
tambien el método Execute del objeto connection, asi:
cnTec.Execute SQL, , adExecuteNoRecords

si no te afecta puedes usar:
Do While
...
Loop
en lugar de
While
...
Wend



El 24/02/07, Cesar Cejas <cesar73(at)gmail(dot)com> escribió:
> Hola! Gente,
> Primero cuento cual es mi situacion:
> 1-Tengo una aplicacion en vb para generar informes para el area de soporte
> tecnico(en este caso necesito transacciones online) y administrasion (en
> este caso necesito tener todo el historia de las transacciones) .
> 2- Actual mente la base de datos en access que ocupa 300MB, y la tabla mas
> grande es la tabla Transacciones con 900.000 registros.
> 3- La base de datos estaba montada en una unidad de red, y no tenia ningun
> motod de base de datos.
> 4- Actual mente estoy migrando la base de datos a postgre.
> 5- Para conectarme a postgre estoy utilizando desde  VB odbc (ADODB). Tuve
> que instalar los drivers de postgre para que esta conexion funcionara.
>
> Les cuento los problemas que me surgieron:
>
> 1- En mi codigo de VB anterior, utilizaba varias veces el metodo
> "recordset.GetRows()". Cuando quiero utilizar este metodo. Se queda
> analizando la consulta por tiempo indeterminada (me refiero a indeterminado
> a 30minutos). Consumiendo el 100% del servidor. El servidor POSTGRE  que
> estoy utilizando es un DUALCORE 3000. CON 1GB DE RAN.
> Ejemplo:
>
>     'Consulta las transacciones pendientes
>     SQL = "SELECT id_tr FROM Transacciones " & _
>           "WHERE estado In ('PEN','PROC','DIF') AND tipo<>'LOGIN'
>     rsTec.Open SQL, cnTec, adOpenDynamic, adLockOptimistic
>     trPen() = rsTec.GetRows()
>     rsTec.Close
>
> 2- Mi otro problema es cuando ejecuto alguna consulta en la tabla
> Transacciones (900.000 registros). La consulta no tarda mucho en ser
> ejecutada. Tarda cuando quiero laburar con los resultados de la consulta
> ejemplo:
>
> 'Actualizo las Transacciones_Pendientes
>    SQL = "SELECT id_tr FROM Transacciones " & _
>           "WHERE estado In ('PEN','PROC','DIF') AND tipo<>'LOGIN'
>     rsTec.Open SQL, cnTec, adOpenDynamic, adLockOptimistic
> 'ESTA CONSULTA TRAE ALREDEDOR DE 400 REGISTROS. EL CAMPO id_tr es del tipo
> bigint.
>
> while not rsTec.eof
>        'Consulto las Transacciones_Pendientes en Telphos
>         SQL = "SELECT id, confirmed_timestamp, status FROM transaction WHERE
> id = '" & rsTec!id_tr & ";"
>   rsServidor2.Open SQL, cnServidor2, adOpenForwardOnly, adLockOptimistic
>
>        SQL = "INSERT INTO tablaX ( ..., ... , ... ,,. ,,. ) VALUES (....,
> ......, ......., ......., )
>       rsTec2.Open SQL, cnTec, adOpenDynamic, adLockOptimistic
>
>
>        rsTec.MOVENEXT   ' mi problema esta en esta instruccion  despues de
> procesar 150 o 200 registros , el movenext
>                                        tarada cada ves mas
> en pasar de registro. Esto se pone muy lento a medido q sigo ejecutando
>                                        el movenext. Tarda
> entre 10 y 15 segundos en hacer el  movenext.
>
> wend
>
> Espero haber sido claro en mi problema. Dedes ya muchas gracias!!!
>

In response to

pgsql-es-ayuda by date

Next:From: Damian CulottaDate: 2007-02-25 03:26:24
Subject: Re: mayuscula y minuscula
Previous:From: Genaro Burgos SepulvedaDate: 2007-02-25 00:11:32
Subject: mayuscula y minuscula

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