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

From: "Cesar Cejas" <cesar73(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: vb Problemas al migrar de Access a Postgres.(recordset muy lento)
Date: 2007-02-24 16:06:05
Message-ID: 63213b0f0702240806r7444160eqd796d51339151237@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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!!!*

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Victor Lopez 2007-02-24 16:12:18 Re: Estoy?
Previous Message Gabriel Colina 2007-02-24 16:03:28 Re: Una respuesta graciosa