16 Y 32?
- leandro
- Posts: 1723
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 15 times
- Been thanked: 3 times
- Contact:
16 Y 32?
Amigos del foro tengan todos buen día.
El problema es el siguiente: hace un tiempo hice una aplicacion en 16 bits, esta aplicación funciona correctamente y con una velocidad extraordinaria.
Pero resulta que migre a 32 bits y la aplicacion se puso superlenta.
Hice las pruebas de los tiempos y los resultados fueron los siguientes:
16 bits -> 45 segundos
32 bits -> 150 segundos
En ese proceso no hay problema, pero hay procesos que son mucho mas largos y se vuelve muy molesto para el usuario estar esperando 20 minutos a que termine un proceso que se puede hacer en 5 minutos.
Alguien me puede ayudar. Alguna sugerencia, por que sucede esto?, no si tenga algo que ver con las bases de datos, los indices.? Help?
El problema es el siguiente: hace un tiempo hice una aplicacion en 16 bits, esta aplicación funciona correctamente y con una velocidad extraordinaria.
Pero resulta que migre a 32 bits y la aplicacion se puso superlenta.
Hice las pruebas de los tiempos y los resultados fueron los siguientes:
16 bits -> 45 segundos
32 bits -> 150 segundos
En ese proceso no hay problema, pero hay procesos que son mucho mas largos y se vuelve muy molesto para el usuario estar esperando 20 minutos a que termine un proceso que se puede hacer en 5 minutos.
Alguien me puede ayudar. Alguna sugerencia, por que sucede esto?, no si tenga algo que ver con las bases de datos, los indices.? Help?
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
- leandro
- Posts: 1723
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 15 times
- Been thanked: 3 times
- Contact:
16 y 32?
Bueno amigos... Les cuento que estuve haciendo varias pruebas y llegue a la conclusion que el problema de la velocidad son los filtros..
Ya que me muestra la base de datos sin filtro de una manera rapida pero al efectuar el un filtro en cuando se pone terriblemente lenta la aplicación.
Yo ejecuto los filtros de la siguiente manera:
Ya que me muestra la base de datos sin filtro de una manera rapida pero al efectuar el un filtro en cuando se pone terriblemente lenta la aplicación.
Yo ejecuto los filtros de la siguiente manera:
Code: Select all | Expand
SELE MYDBF
SET FILT TO CONTRO="04"
DBGOTOP()
DO WHILE !EOF()
.......
SKIP
ENDDO
Se debe hacer de otra manera el mysql, o existe alguna otra solicion para este problema?
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
- Antonio Linares
- Site Admin
- Posts: 42421
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 14 times
- Been thanked: 48 times
- Contact:
- jlaguilars
- Posts: 15
- Joined: Tue Oct 25, 2005 3:48 pm
- Location: Tabasco, México
Re: 16 Y 32?
Hola, usando índices CDX puedes aplicar SCOPES, o puedes hacer TAGS condicionados, ésto agiliza de una manera muy significativa el proceso, que hasta el pelo se te volará.
Todo lo anterior es mucho mejor que usar 'hard code' por ejemplo:
IF control = '04' <-----
Intentalo y verás.
Saludos
José Luis
Todo lo anterior es mucho mejor que usar 'hard code' por ejemplo:
IF control = '04' <-----
Intentalo y verás.
Saludos
José Luis
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
por experiencia que he tenido [x]harbor+fwh en manejos de tablas en mucho mas rapido en 32 bits que en 16 bits.
donde es mas rapido el 16 bits es en la salida de datos en aplicaciones modo consola. ahi [x]harbour solito es donde pierde.
efectivamente el caso de los filtro con los rdd nativos se manejan de una forma mas lenta. pero cuando se usa el rdd ads (en modo local) los filtros son mucho mas rapidos que en el rdd nativo.
una sugerencia es que utilices los scope para realizar filtros a las tablas, de esta forma la seleccion es muchismo mas rapida.
salu2
carlos vargas
donde es mas rapido el 16 bits es en la salida de datos en aplicaciones modo consola. ahi [x]harbour solito es donde pierde.
efectivamente el caso de los filtro con los rdd nativos se manejan de una forma mas lenta. pero cuando se usa el rdd ads (en modo local) los filtros son mucho mas rapidos que en el rdd nativo.
una sugerencia es que utilices los scope para realizar filtros a las tablas, de esta forma la seleccion es muchismo mas rapida.
salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
Re: 16 y 32?
leandro wrote:SELE MYDBF
SET FILT TO CONTRO="04"
DBGOTOP()
DO WHILE !EOF()
.......
SKIP
ENDDO
Leandro,
En este caso, yo creo que el filtro está fuera de lugar:
1) La base MyDbf debe tener un índice por el campo control
2) SELE MYDBF
SET INDEX TO control
IF DBSEEK ("O4")
WHILE mydbf->CONTROL = "04"
.......
DBSKIP()
ENDD
ELSE // opcional
ALERT ("PONES LO QUE QUIERAS")
ENDI
Un saludo
Manuel
Manuel
- leandro
- Posts: 1723
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 15 times
- Been thanked: 3 times
- Contact:
Amigos de foro muchas gracias por las respuestas...
Pero... y perdonen la ignorancia... la verdad nunca he usado los scopes ... alguien me puede regalar un ejemplillo. De antemano gracias.
Pero... y perdonen la ignorancia... la verdad nunca he usado los scopes ... alguien me puede regalar un ejemplillo. De antemano gracias.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
leandro wrote:Amigos de foro muchas gracias por las respuestas...
Pero... y perdonen la ignorancia... la verdad nunca he usado los scopes ... alguien me puede regalar un ejemplillo. De antemano gracias.
Seguramente al escribir tu ultimo mensaje, no has leido el mio (lo hemos escrito practicamente al unísono).
¿Los indices que usas son ntx ó cdx?
Un saludo
Manuel
Manuel
- leandro
- Posts: 1723
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 15 times
- Been thanked: 3 times
- Contact:
cdx
Amigo uso indices CDX...
Gracias
Gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
- Raymundo Islas M.
- Posts: 592
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Leandro
Como te comentan los demas compañeros, debes tener la base indexada sobre los campos que vas a aplicar el scope, ya despues aplicas esto :
0 -> inicio del rango
1 -> final del rango
o a lo que es igual a decir desde-hasta
// Para Activar el scope
PAQSDET->( OrdScope( 0, Str( nPaq2Set, 4 ) ) )
PAQSDET->( OrdScope( 1, Str( nPaq2Set, 4 ) ) )
PAQSDET->( DbGoTop() )
// Para desactivarlo
PAQSDET->( OrdScope( 0, NIL ) )
PAQSDET->( OrdScope( 1, NIL ) )
PAQSDET->( DbGoTop() )
Es importante que al final lo desactives, si no, tu sistema va a "ver" solo los registros que apliquen al ultimo scope activado y sobre todo la llave del indexado debe ser identica al del scope.
Espero te sirva
Saludos
Como te comentan los demas compañeros, debes tener la base indexada sobre los campos que vas a aplicar el scope, ya despues aplicas esto :
0 -> inicio del rango
1 -> final del rango
o a lo que es igual a decir desde-hasta
// Para Activar el scope
PAQSDET->( OrdScope( 0, Str( nPaq2Set, 4 ) ) )
PAQSDET->( OrdScope( 1, Str( nPaq2Set, 4 ) ) )
PAQSDET->( DbGoTop() )
// Para desactivarlo
PAQSDET->( OrdScope( 0, NIL ) )
PAQSDET->( OrdScope( 1, NIL ) )
PAQSDET->( DbGoTop() )
Es importante que al final lo desactives, si no, tu sistema va a "ver" solo los registros que apliquen al ultimo scope activado y sobre todo la llave del indexado debe ser identica al del scope.
Espero te sirva
Saludos
FWH 10.6 + xHarbour + Borland 582