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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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!!!
>
From | Date | Subject | |
---|---|---|---|
Next Message | Damian Culotta | 2007-02-25 03:26:24 | Re: mayuscula y minuscula |
Previous Message | Genaro Burgos Sepulveda | 2007-02-25 00:11:32 | mayuscula y minuscula |