Página 1 de 1

Consumo de recursos

Publicado: Mar May 23, 2006 2:33 pm
por Christian
Hola estoy haciendo un proceso que importa datos de una tabla en Access y la
pasa a SqlServer (a ambas tablas la abro a traves de Odbc) y me consume toda
la memoria de la pc, se pone muy lento y da un GPF, ademas si lo cierro
antes de que consuma toda la memoria me da un GPF y/o un error XA_Alias no
encontrado.
Pero lo que mas me preocupa es el consumo de memoria, como no soy muy ducho
en destriur las variables he revisado el codigo y no consigo saber porque me
consume la memoria, aqui les adjunto el codigo que ejecuto a ver si alguien
me puede dar una pista. Muchas Gracias.


Attached files VER.TXT (7.3 KB)Â

Consumo de recursos

Publicado: Mar May 23, 2006 8:09 pm
por ignacio
Christian,
Sin un projecto completo donde podamos probarlo es decirle donde puede estar
consumiendo memoria. No obstante, creo que lo que quiere realizar se puede
hacer más facilmente. Simplemente haga lo siguiente:
- Cree un Datasource que apunte a Access
- Cree otro DataSource que apunte a SqlServer
- Cree un DataSet que apunta a la tabla de Access donde va a recoger la
información
- Cree un DataSet que apunta a la tabla de SqlServer donde quiere hacer los
insert
Después solo tiene que hacer un pequeño bucle, algo parecido a esto:
::oDSAccess:GoTop()
DO WHILE .NOT. ::oDSAccess:Eof()
WITH OBJECT ::oDSSqlServer
:AddNew()
:Campo1 := ::oDSAccess:Campo1
:Campo2 := ::oDSAccess:Campo2
:Campo3 := ::oDSAccess:Campo3
:Update()
END WITH
::oDSAccess:Skip()
ENDDO
Saludos,
"Christian" <christianassenza@yahoo.com.ar> escribió en el mensaje
news:[email=4473011d@ozsrvnegro.ozlan.local...]4473011d@ozsrvnegro.ozlan.local...[/email]
> Hola estoy haciendo un proceso que importa datos de una tabla en Access y
> la pasa a SqlServer (a ambas tablas la abro a traves de Odbc) y me consume
> toda la memoria de la pc, se pone muy lento y da un GPF, ademas si lo
> cierro antes de que consuma toda la memoria me da un GPF y/o un error
> XA_Alias no encontrado.
> Pero lo que mas me preocupa es el consumo de memoria, como no soy muy
> ducho en destriur las variables he revisado el codigo y no consigo saber
> porque me consume la memoria, aqui les adjunto el codigo que ejecuto a ver
> si alguien me puede dar una pista. Muchas Gracias.
>
>
>
>

Consumo de recursos

Publicado: Mar May 23, 2006 10:47 pm
por jlalin
Christian,
revisando el código así­ por encima, veo que estás haciendo uso de
procesos que necesitan bastante tiempo de CPU y quizás el problema esté
en que no le estás dando tiempo a "recuperar" la memoria y terminas
ahogando al sistema.
Prueba a poner alguna llamada a ProcessMessages() dentro de los bucles
que necesiten más tiempo.
Saludos,
José Lalí­n

Consumo de recursos

Publicado: Dom May 28, 2006 3:56 pm
por Christian
Hola probe como me indicaste, ademas le agregue "ProcessMessages()" y sigue
consumiendo los recursos, el cambio mas importante que vi con lo que me
indicaste Ignacio es la velocidad es muchisimo mas rapido pero mas rapido me
consume la memoria.
Algo raro es que si uso una base de datos de SQLServer 7 el programa precios
es el que consume la memoria (segun lo que vi en el administrador de tareas)
ahora si uso una base de datos de Interbase el IBServer se consume toda la
memoria y termino el paso de datos cierro el programa y el ibserver sige con
la memoria asignada ???
Aqui te adjunto el projecto completo, desde ya muchas gracias por verlo.
Saludos Atte.
Christian Assenza
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:44734fd9$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Christian,
>
> Sin un projecto completo donde podamos probarlo es decirle donde puede
> estar consumiendo memoria. No obstante, creo que lo que quiere realizar se
> puede hacer más facilmente. Simplemente haga lo siguiente:
>
> - Cree un Datasource que apunte a Access
> - Cree otro DataSource que apunte a SqlServer
> - Cree un DataSet que apunta a la tabla de Access donde va a recoger la
> información
> - Cree un DataSet que apunta a la tabla de SqlServer donde quiere hacer
> los insert
>
> Después solo tiene que hacer un pequeño bucle, algo parecido a esto:
>
> ::oDSAccess:GoTop()
> DO WHILE .NOT. ::oDSAccess:Eof()
> WITH OBJECT ::oDSSqlServer
> :AddNew()
> :Campo1 := ::oDSAccess:Campo1
> :Campo2 := ::oDSAccess:Campo2
> :Campo3 := ::oDSAccess:Campo3
> :Update()
> END WITH
> ::oDSAccess:Skip()
> ENDDO
>
> Saludos,
>
> "Christian" <christianassenza@yahoo.com.ar> escribió en el mensaje
> news:[email=4473011d@ozsrvnegro.ozlan.local...]4473011d@ozsrvnegro.ozlan.local...[/email]
>> Hola estoy haciendo un proceso que importa datos de una tabla en Access y
>> la pasa a SqlServer (a ambas tablas la abro a traves de Odbc) y me
>> consume toda la memoria de la pc, se pone muy lento y da un GPF, ademas
>> si lo cierro antes de que consuma toda la memoria me da un GPF y/o un
>> error XA_Alias no encontrado.
>> Pero lo que mas me preocupa es el consumo de memoria, como no soy muy
>> ducho en destriur las variables he revisado el codigo y no consigo saber
>> porque me consume la memoria, aqui les adjunto el codigo que ejecuto a
>> ver si alguien me puede dar una pista. Muchas Gracias.
>>
>>
>>
>>
>
>

Consumo de recursos

Publicado: Lun May 29, 2006 10:01 am
por ignacio
Christian,
Lo siento pero no nos podemos meter con semejante ejemplo que no es más que
parte de tu código. Espero que lo entiendas.Yo te mande un cuatro líneas la
forma de hacerlo y comentastes que iba bien, pero ahora cuando reenvias el
ejemplo, compruebo que es un descomunal ejemplo.
Intentaré yo mismo hacer el ejemplo pasando de Access a SQL server y
comprobaré la perdida de memoria.
Un saludo,
"Christian" <christianassenza@yahoo.com.ar> escribió en el mensaje
news:[email=4479adfc@ozsrvnegro.ozlan.local...]4479adfc@ozsrvnegro.ozlan.local...[/email]
> Me olvide de adjuntar el archivo, aqui esta
>
>
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:44734fd9$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Christian,
>>
>> Sin un projecto completo donde podamos probarlo es decirle donde puede
>> estar
>> consumiendo memoria. No obstante, creo que lo que quiere realizar se
>> puede
>> hacer más facilmente. Simplemente haga lo siguiente:
>>
>> - Cree un Datasource que apunte a Access
>> - Cree otro DataSource que apunte a SqlServer
>> - Cree un DataSet que apunta a la tabla de Access donde va a recoger la
>> información
>> - Cree un DataSet que apunta a la tabla de SqlServer donde quiere hacer
>> los
>> insert
>>
>> Después solo tiene que hacer un pequeño bucle, algo parecido a esto:
>>
>> ::oDSAccess:GoTop()
>> DO WHILE .NOT. ::oDSAccess:Eof()
>> WITH OBJECT ::oDSSqlServer
>> :AddNew()
>> :Campo1 := ::oDSAccess:Campo1
>> :Campo2 := ::oDSAccess:Campo2
>> :Campo3 := ::oDSAccess:Campo3
>> :Update()
>> END WITH
>> ::oDSAccess:Skip()
>> ENDDO
>>
>> Saludos,
>>
>> "Christian" <christianassenza@yahoo.com.ar> escribió en el mensaje
>> news:[email=4473011d@ozsrvnegro.ozlan.local...]4473011d@ozsrvnegro.ozlan.local...[/email]
>>> Hola estoy haciendo un proceso que importa datos de una tabla en Access
>>> y
>>> la pasa a SqlServer (a ambas tablas la abro a traves de Odbc) y me
>>> consume
>>> toda la memoria de la pc, se pone muy lento y da un GPF, ademas si lo
>>> cierro antes de que consuma toda la memoria me da un GPF y/o un error
>>> XA_Alias no encontrado.
>>> Pero lo que mas me preocupa es el consumo de memoria, como no soy muy
>>> ducho en destriur las variables he revisado el codigo y no consigo saber
>>> porque me consume la memoria, aqui les adjunto el codigo que ejecuto a
>>> ver
>>> si alguien me puede dar una pista. Muchas Gracias.
>>>
>>>
>>>
>>>
>>
>>
>
>
>

Consumo de recursos

Publicado: Mar May 30, 2006 3:43 am
por Christian
No hay problema, con solo hacer un paso de datos seguro que logras
reproducir el consumo de memoria proba con unos 5000 registros. Y cualquier
cosa avisame.
Muchas gracias
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:447aaa41$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Christian,
>
> Lo siento pero no nos podemos meter con semejante ejemplo que no es más
> que parte de tu código. Espero que lo entiendas.Yo te mande un cuatro
> líneas la forma de hacerlo y comentastes que iba bien, pero ahora cuando
> reenvias el ejemplo, compruebo que es un descomunal ejemplo.
>
> Intentaré yo mismo hacer el ejemplo pasando de Access a SQL server y
> comprobaré la perdida de memoria.
>
> Un saludo,
>
> "Christian" <christianassenza@yahoo.com.ar> escribió en el mensaje
> news:[email=4479adfc@ozsrvnegro.ozlan.local...]4479adfc@ozsrvnegro.ozlan.local...[/email]
>> Me olvide de adjuntar el archivo, aqui esta
>>
>>
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:44734fd9$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Christian,
>>>
>>> Sin un projecto completo donde podamos probarlo es decirle donde puede
>>> estar
>>> consumiendo memoria. No obstante, creo que lo que quiere realizar se
>>> puede
>>> hacer más facilmente. Simplemente haga lo siguiente:
>>>
>>> - Cree un Datasource que apunte a Access
>>> - Cree otro DataSource que apunte a SqlServer
>>> - Cree un DataSet que apunta a la tabla de Access donde va a recoger la
>>> información
>>> - Cree un DataSet que apunta a la tabla de SqlServer donde quiere hacer
>>> los
>>> insert
>>>
>>> Después solo tiene que hacer un pequeño bucle, algo parecido a esto:
>>>
>>> ::oDSAccess:GoTop()
>>> DO WHILE .NOT. ::oDSAccess:Eof()
>>> WITH OBJECT ::oDSSqlServer
>>> :AddNew()
>>> :Campo1 := ::oDSAccess:Campo1
>>> :Campo2 := ::oDSAccess:Campo2
>>> :Campo3 := ::oDSAccess:Campo3
>>> :Update()
>>> END WITH
>>> ::oDSAccess:Skip()
>>> ENDDO
>>>
>>> Saludos,
>>>
>>> "Christian" <christianassenza@yahoo.com.ar> escribió en el mensaje
>>> news:[email=4473011d@ozsrvnegro.ozlan.local...]4473011d@ozsrvnegro.ozlan.local...[/email]
>>>> Hola estoy haciendo un proceso que importa datos de una tabla en Access
>>>> y
>>>> la pasa a SqlServer (a ambas tablas la abro a traves de Odbc) y me
>>>> consume
>>>> toda la memoria de la pc, se pone muy lento y da un GPF, ademas si lo
>>>> cierro antes de que consuma toda la memoria me da un GPF y/o un error
>>>> XA_Alias no encontrado.
>>>> Pero lo que mas me preocupa es el consumo de memoria, como no soy muy
>>>> ducho en destriur las variables he revisado el codigo y no consigo
>>>> saber
>>>> porque me consume la memoria, aqui les adjunto el codigo que ejecuto a
>>>> ver
>>>> si alguien me puede dar una pista. Muchas Gracias.
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>