Page 1 of 1

Lentitud al Abrir Bases de Datos

Posted: Tue Nov 11, 2008 10:10 pm
by derpipu
Hola a todos, tengo un sistema con una base de datos que tiene mas de 600, 000 registros, que la primera vez que se abre en cualquier proceso tarda hasta 7 segundos en abrirla, lo he probado midiendo cuando entra a la funcion para abrirla y que no es mas que

Code: Select all

 use algo shared new 
y veo que llega hasta ese tiempo para abrirla, pero lo curioso es que si cierro ese dialogo y obviamente cierro todas las areas abiertas, cuando lo vuelvo a abrir no tarda ni un segundo...

Uso el xHarbour que nos proporciona Antonio Linares..

Espero que alguien pueda darme una orientacion..

Saludos

Posted: Tue Nov 11, 2008 11:54 pm
by sysctrl2
de _ se conforma tu base.dbf ?

tienes campos memos ?


usas ntx o cdx ?

saludos..

Posted: Tue Nov 11, 2008 11:58 pm
by derpipu
11 campos tiene la bd, 600,000 son los registros, utilizo CDX con xHarbour, pero como te comento solo la primera vez que se abren esas dbf tarda alrededor de 7 segundos, y si la vuelvo a abrir de nuevo, lo hace casi inmediatamente...

es un caso para la araña definitivamente..

Gracias

Posted: Tue Nov 11, 2008 11:58 pm
by derpipu
ahh se me olvidaba no tiene campos memo..

Saludos

Posted: Wed Nov 12, 2008 12:08 am
by Armando
Luis Fernando:

Nomas por no dejar, y si antes de abrir la DBF por primera vez primero cierras todas las áreas abiertas ???

Saludos

apertura de dbfs

Posted: Wed Nov 12, 2008 12:29 am
by tosko
puedes ser un poquito mas especifico con codigo para ver como haces tu proceso de apertura antes y despues...


Saludos

Re: Lentitud al Abrir Bases de Datos

Posted: Wed Nov 12, 2008 1:17 am
by lubin
Hola derpipu

Una idea fuera del FWh.. que me paso a mi con unas dbf. grandess.. el motivo fue que el disco duro donde estan los datos este muy fragmentado, sobre todo si la base de datos es grandees.. pues a la primera se demora cargar el archivo . las otras veces los mantiene en cache y es mas rapida.. prueba desfragmentar el disco y probar como va.


suerte
lubin

Posted: Wed Nov 12, 2008 1:23 am
by joseluisysturiz
Solo por curiosidad, no sera que cuando la abres por primera ves estaras haciendo una generacion de indices...y por eso es lenta...yo lo hago asi porque el sistema aun no esta en red....como dice el colega....coloca algo de codigo a ver si asi te ayudamos mas.

Posted: Wed Nov 12, 2008 10:01 am
by hmpaquito
probablemente tengas muchos deleted...
necesitaras un PACK

Posted: Wed Nov 12, 2008 3:42 pm
by derpipu
Hola a todos, les agradezco sus opiniones, les comento que el sistema tiene un proceso que dia a dia obligatoriamente regenera indices y hace un pack de las db's, ahora bien la base de datos es de 45 megas y tiene casi 600,000 registros, les adjunto el codigo con el que abro la base de datos...

Code: Select all

function net_use( pcBaseDatos, plExclusivo, pcAlias, pcRuta, plOkDbf )
  Local lContinuar := .F.
  local oError

  local nInicio := seconds()

  default pcAlias := cFileNoExt(pcBaseDatos), plExclusivo := .F., pcRuta := "", plOkDbf := .F.//, pcBaseDatos := cFileNoExt(pcBaseDatos)

  if plOkDbf
    if ! lOkDbf( pcRuta + pcBaseDatos ); return(lContinuar); endif
  endif

  if plExclusivo
      use (pcRuta + pcBaseDatos) alias (pcAlias) exclusive new
  else
      use (pcRuta + pcBaseDatos) alias (pcAlias) shared new
  endif

  if ! netErr()
    lContinuar := .T.
    (pcAlias)->(ordSetFocus(1))
  else
    MsgStop("La base de datos: " + Upper(pcBaseDatos) + ".DBF, no puede ser procesada" + CRLF +;
            "llame a su asesor de Informatica..." , oApp:cEmpresa)
  endif

//  ? seconds() - ninicio
return(lContinuar)
Lo mas chistoso es que solo la primera vez que la abro y en algunas ocasiones estoy viendo tarda esos 7 segundos y ya despues lo hace inmediato, incluso esa bd la abro con el dbu y la abre rapidisimo..

Saludos

Posted: Thu Nov 13, 2008 8:29 am
by Ricardo Ramirez E.
derpipu :

Lo mas chistoso es que solo la primera vez que la abro y en algunas ocasiones estoy viendo tarda esos 7 segundos y ya despues lo hace inmediato, incluso esa bd la abro con el dbu y la abre rapidisimo..
Que bueno que lo tomes como un chiste :lol:

Pegunta...

Cuando te refieres a abrir x primera vez .. te refieres a que ejecutas la aplicacion y demora en abrir... ?

O a abrirlo directamente con el DBU ?

Te pregunto esto .. pq tengo he notado que mi antivirus hace lenta la primera ejecucion de las aplicaciones FHW+xHarbour, pero eso solo en la primera ejecucion.

Posted: Thu Nov 13, 2008 6:10 pm
by Carlos Mora
La dbf esta en el mismo equipo o en un servidor? Si esta en un servidor, prueba deshabilitando los optimistics locks.

Un saludo

Posted: Thu Nov 13, 2008 10:23 pm
by derpipu
Hola a todos, primero que nada les agradezco sus amables comentarios, les comento que el comportamiento es igual en local y en red, entonces yo creo que va a ser mas factible lo que me comentan que posiblemente sea mi antivirus, uso el Kaspersky Internet Security, y creo que las estaciones que la usan el mismo antivirus...

Saludos

Noticia de Ultima Hora, deshabilite mi Antivirus y funciono rapidisimo... al parecer el antivirus esta al tanto de todos y cada uno de los archivos que se abren en mi equipo..

les agradezco a todos por su tiempo...

Gracias

Posted: Fri Nov 14, 2008 3:15 am
by joseluisysturiz
derpipu wrote:Hola a todos, primero que nada les agradezco sus amables comentarios, les comento que el comportamiento es igual en local y en red, entonces yo creo que va a ser mas factible lo que me comentan que posiblemente sea mi antivirus, uso el Kaspersky Internet Security, y creo que las estaciones que la usan el mismo antivirus...

Saludos

Noticia de Ultima Hora, deshabilite mi Antivirus y funciono rapidisimo... al parecer el antivirus esta al tanto de todos y cada uno de los archivos que se abren en mi equipo..

les agradezco a todos por su tiempo...

Gracias
Bajale el nivel de seguridad al antivirus, ya que eso mismo lo hace PANDA, y quita el FIREWALL DE WINDOWS , deja solo el del antivirus...saludos... :shock:

Posted: Fri Nov 14, 2008 10:20 am
by pymsoft
Luis,

Nosotros con Kaspersky, deshabilitamos siempre el control a nuestro programa. Eso hace que no controle nada de lo que nuestro programa hace o abre. Hay que hacerlo en cada estacion donde tengas instalado el antivirus y uses tu programa.
En exclusiones o algo asi en español lo deberias encontrar, y ahi le pones todo lo que no quieres que el antivirus controle.


Saludos