Author | Topic: Limite | |
---|---|---|
Osvaldo Ramirez | Limite on Fri, 17 Jun 2011 06:59:43 -0600 Estimados Alguna configuracion para pasar el limite de los 2gb en DBF - NTX ? usado 1.9.335 NO ADS Como comentario, lo uso con temporales, Saludos Osvaldo Ramirez | |
Jorge L | Re: Limite on Fri, 17 Jun 2011 17:29:19 -0300 Hola Osvaldo, estaría bueno que exista la posibilidad de superar el límitem, siempre he asumido que esa barrera es infranqueable ya que en el manual la especificación es clara para paliar esa situación uso 2 dbfs, la principal que tiene los 3 últimos años y una secundaria gemela que tiene los años anteriores en las búsquedas cuando en las consultas paso con la fecha los últimos 3 años, en el marcado de cambio de fecha cambio el alias, te paso un ejemplo que me ha ayudado a no reescribir tanto las rutinas saludos en este ejemplo tengo un índice con fecha inversa nAno := Year( Date() ) nAlias := Select( 'DETAL' ) ( nAlias )->( dbSeek( DToS( dFecFin ), .T. ) ) While ( ( nAlias )->( !Eof() ) .And. ( nAlias )->FECHA >= dFecIni ) /// lo que sea If ( dFec != ( nAlias )->FECHA ) dFec := ( nAlias )->FECHA ) ActualizoCartelFecha( dFec ) por ejemplo If ( nAno - Year( dFec ) > 3 ) nAlias := Select( 'DETANT' ) ( nAlias )->( dbGoTOP() ) arranco en el principio ya que por índice sería la posición anterior al alias() principal EndIF ( nAlias )->( dbSkip() ) EndDO "Osvaldo Ramirez" escribió en el mensaje de noticias:47e024c9$6e0d6588$4cb0d@news.alaska-software.com... Estimados Alguna configuracion para pasar el limite de los 2gb en DBF - NTX ? usado 1.9.335 NO ADS Como comentario, lo uso con temporales, Saludos Osvaldo Ramirez | |
Osvaldo Ramirez | Re: Limite on Fri, 17 Jun 2011 15:40:01 -0600 Muchas gracias amigo, El punto es, que dicha informacion es de 42 Dias solamente, ojala fuera de años. Este temporal el cual hablo es una relacion de 42 dias de movimientos de entradas y salidas, asi com la existencia de ese dia, de productos de farmacia, y analizo producto x producto y veo cuantas entradas, salidas y existencias dia por dia, asi junto los 42 dias por producto y determinamos con un desviacion estandar el posible stock de inventario a tener x producto diario, basado en 42 dias. Por lo tanto hago todo en un temporal y lo proceso! La idea que distes de dividir es buena, pero en mi caso, pudiera ser no por fecha si no mas bien dividir mi catalogo en 2 archivos y primero analizar una parte y luego otra, ya que dicho resultado, va a quedar en un solo dbf de 5 o maximo 10mb. Saludos Osvaldo Ramirez On 6/17/2011 2:29 PM, Jorge L wrote: > Hola Osvaldo, > > estaría bueno que exista la posibilidad de superar el límitem, siempre > he asumido que esa barrera es infranqueable ya que en el manual la > especificación es clara > > para paliar esa situación uso 2 dbfs, la principal que tiene los 3 > últimos años y una secundaria gemela que tiene los años anteriores > en las búsquedas cuando en las consultas paso con la fecha los últimos 3 > años, en el marcado de cambio de fecha cambio el alias, > te paso un ejemplo que me ha ayudado a no reescribir tanto las rutinas > > saludos > > en este ejemplo tengo un índice con fecha inversa > > nAno := Year( Date() ) > nAlias := Select( 'DETAL' ) > ( nAlias )->( dbSeek( DToS( dFecFin ), .T. ) ) > While ( ( nAlias )->( !Eof() ) .And. ( nAlias )->FECHA >= dFecIni ) > > /// lo que sea > > If ( dFec != ( nAlias )->FECHA ) > dFec := ( nAlias )->FECHA ) > ActualizoCartelFecha( dFec ) por ejemplo > If ( nAno - Year( dFec ) > 3 ) > nAlias := Select( 'DETANT' ) > ( nAlias )->( dbGoTOP() ) arranco en el principio ya que por índice > sería la posición anterior al alias() principal > EndIF > ( nAlias )->( dbSkip() ) > EndDO > > > "Osvaldo Ramirez" escribió en el mensaje de > noticias:47e024c9$6e0d6588$4cb0d@news.alaska-software.com... > > > Estimados > > Alguna configuracion para pasar el limite de los 2gb en DBF - NTX ? > > usado 1.9.335 > > NO ADS > > Como comentario, lo uso con temporales, > > Saludos > Osvaldo Ramirez | |
Gustavo M. Burgos | Re: Limite on Fri, 17 Jun 2011 20:50:27 -0300 Bueno osvaldo este es un tema de algoritmos, como ya sabras, pero como natura non das salamca non presta. y tendras que apelar la famosa frase divide y venceras. es lo yo realizo cuando tengo gran sobrecarga de datos como en tu caso. directamente creo una base de datos por dia ej. (st010211.dbf) y alli guardo todos mis movimiento. y tendras que tener una base de datos con las referencias por dia con el nombre que corresponde a la base a actualizar. es un laburo de hormigas pero vale la pena. luego los informes solo es cuestion de algoritmos. oviamente esto cambiara y tendres que modificar bastantes tares en el codigo. pero es una solucion a largo tiempo. un abrazo y espero que soluciones el problema Gustavo M. Burgos Rivadavia N 278. Pcia Roque Saenz Pea - Chaco Argentina Fijo 03732-420635 Movil 3732-408559 Burmanspm@arnet.com.ar | |
Osvaldo Ramirez | Re: Limite on Sat, 18 Jun 2011 10:54:23 -0600 On 6/17/2011 5:50 PM, Gustavo M. Burgos wrote: > Bueno osvaldo este es un tema de algoritmos, como ya sabras, pero como > natura non das salamca non presta. y tendras que apelar la famosa frase > divide y venceras. > es lo yo realizo cuando tengo gran sobrecarga de datos como en tu caso. > directamente creo una base de datos por dia ej. (st010211.dbf) y alli guardo > todos mis movimiento. y tendras que tener una base de datos con las > referencias por dia con el nombre que corresponde a la base a actualizar. es > un laburo de hormigas pero vale la pena. luego los informes solo es cuestion > de algoritmos. > oviamente esto cambiara y tendres que modificar bastantes tares en el > codigo. pero es una solucion a largo tiempo. > un abrazo y espero que soluciones el problema > Gracias amigo, si, tiene toda la razon, hay que dividir, ahorita estoy haciendo pruebas haber de que manera divido, pero como tu dices, si es cambio en el codigo. Saludos Osvaldo Ramirez | |
Jos Luis Otermin [Alaska Software] | Re: Limite on Sun, 19 Jun 2011 10:03:51 -0300 Osvaldo, En la documentacin de Xbase++ (Gua de Programacin) dice: DBFDBE_LOCKOFFSET Esta constante devuelve o modifica el desplazamiento del rea para los bloqueos de registros. El desplazamiento predeterminado es 2 gigabytes. Puede modificarse con el fin de garantizar la operacin concurrente de las aplicaciones de Xbase++ con las aplicaciones de Clipper. Lo predeterminado es 1 gigabyte bajo Clipper 5.01 y 2 gigabytes bajo Clipper 5.2 cuando el archivo NTXLOCK2.OBJ est enlazado con la aplicacin. Cambiar el desplazamiento de los bloqueos de registros debera llevarse a cabo solamente con un conocimiento detallado del mecanismo de bloqueo para los registros. Por ejemplo: DbeInfo( COMPONENT_DATA, DBFDBE_LOCKOFFSET, 2 * 10^9 ) En esta lnea de programa el desplazamiento para los bloqueos de registro manipulados por el componente DATA del DBE DBFNTX compuesto se establece en 2 gigabytes. Cuidado: Si el DBFDBE se establece como el componente DATA de un DBE compuesto, la alteracin del desplazamiento debe llevarse a cabo tambin para el componente ORDER. Por ejemplo, en el DBE DBFNTX compuesto, el DBFDBE y el NTXDBE deben tener el mismo desplazamiento para los bloqueos de registro. El desplazamiento para el NTXDBE se establece usando la constante NTXDBE_LOCKOFFSET. Hasta ah, la informacin sobre compatibilidad con Clipper de la versin 1.7 Sin embargo, en la versin 1.9, la documentacin se actualiz a: DBFDBE_LOCKOFFSET This constant returns or changes the offset for record locks. The offset for record locks determines the maximum size of the DBF table. The default offset for record locks is 1.000.000.000 or approx. 1GB. This corresponds to the maximum size of a Clipper-compatible DBF table. To increase the storage capacity of DBF files to the current maximum of ~2.4GB, a locking offset of 0x80000000 must be configured. Changing the DBFDBE_LOCKOFFSET allows to extend the maximum file capacity of DBF tables beyond Clipper's capacity. However these DBF tables cannot be shared safely with Clipper due to the different locking offsets used to syncronize concurrent operations. The maximum value for DBFDBE_LOCKOFFSET is 0xFFFFFFFF. Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Osvaldo Ramirez" <ramirezosvaldo@prodigy.net.mx> escribi en el mensaje news:73acb6e8$66a92ea2$51ba5@news.alaska-software.com... > On 6/17/2011 5:50 PM, Gustavo M. Burgos wrote: >> Bueno osvaldo este es un tema de algoritmos, como ya sabras, pero como >> natura non das salamca non presta. y tendras que apelar la famosa frase >> divide y venceras. >> es lo yo realizo cuando tengo gran sobrecarga de datos como en tu caso. >> directamente creo una base de datos por dia ej. (st010211.dbf) y alli >> guardo >> todos mis movimiento. y tendras que tener una base de datos con las >> referencias por dia con el nombre que corresponde a la base a actualizar. >> es >> un laburo de hormigas pero vale la pena. luego los informes solo es >> cuestion >> de algoritmos. >> oviamente esto cambiara y tendres que modificar bastantes tares en el >> codigo. pero es una solucion a largo tiempo. >> un abrazo y espero que soluciones el problema >> > Gracias amigo, si, tiene toda la razon, hay que dividir, ahorita estoy > haciendo pruebas haber de que manera divido, pero como tu dices, si es > cambio en el codigo. > > Saludos > Osvaldo Ramirez > | |
Jorge L | Re: Limite on Sun, 19 Jun 2011 10:20:58 -0300 Hola José mil gracias por la aclaración pero siempre me es confusa esta parte y nunca termino de entender si hay más posibilidades de lo que uso ..... no me queda claro si realmente el límite no se puede pasar de 2gb o si si dado el caso es posible y lo quiero llevar a 4gb, podrías indicarme como hacerlo para usar dbfcdx y si habría posibilidad de que expliques los cuidados que hay que tener para el lockeo ? un saludo grande "José Luis Otermin [Alaska Software]" escribió en el mensaje de noticias:125e2da0$565fa4b7$c5c@news.alaska-software.com... Osvaldo, En la documentación de Xbase++ (Guía de Programación) dice: DBFDBE_LOCKOFFSET Esta constante devuelve o modifica el desplazamiento del área para los bloqueos de registros. El desplazamiento predeterminado es 2 gigabytes. Puede modificarse con el fin de garantizar la operación concurrente de las aplicaciones de Xbase++ con las aplicaciones de Clipper. Lo predeterminado es 1 gigabyte bajo Clipper 5.01 y 2 gigabytes bajo Clipper 5.2 cuando el archivo NTXLOCK2.OBJ está enlazado con la aplicación. Cambiar el desplazamiento de los bloqueos de registros debería llevarse a cabo solamente con un conocimiento detallado del mecanismo de bloqueo para los registros. Por ejemplo: DbeInfo( COMPONENT_DATA, DBFDBE_LOCKOFFSET, 2 * 10^9 ) En esta línea de programa el desplazamiento para los bloqueos de registro manipulados por el componente DATA del DBE DBFNTX compuesto se establece en 2 gigabytes. Cuidado: Si el DBFDBE se establece como el componente DATA de un DBE compuesto, la alteración del desplazamiento debe llevarse a cabo también para el componente ORDER. Por ejemplo, en el DBE DBFNTX compuesto, el DBFDBE y el NTXDBE deben tener el mismo desplazamiento para los bloqueos de registro. El desplazamiento para el NTXDBE se establece usando la constante NTXDBE_LOCKOFFSET. Hasta ahí, la información sobre compatibilidad con Clipper de la versión 1.7 Sin embargo, en la versión 1.9, la documentación se actualizó a: DBFDBE_LOCKOFFSET This constant returns or changes the offset for record locks. The offset for record locks determines the maximum size of the DBF table. The default offset for record locks is 1.000.000.000 or approx. 1GB. This corresponds to the maximum size of a Clipper-compatible DBF table. To increase the storage capacity of DBF files to the current maximum of ~2.4GB, a locking offset of 0x80000000 must be configured. Changing the DBFDBE_LOCKOFFSET allows to extend the maximum file capacity of DBF tables beyond Clipper's capacity. However these DBF tables cannot be shared safely with Clipper due to the different locking offsets used to syncronize concurrent operations. The maximum value for DBFDBE_LOCKOFFSET is 0xFFFFFFFF. Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Osvaldo Ramirez" <ramirezosvaldo@prodigy.net.mx> escribió en el mensaje news:73acb6e8$66a92ea2$51ba5@news.alaska-software.com... > On 6/17/2011 5:50 PM, Gustavo M. Burgos wrote: >> Bueno osvaldo este es un tema de algoritmos, como ya sabras, pero como >> natura non das salamca non presta. y tendras que apelar la famosa frase >> divide y venceras. >> es lo yo realizo cuando tengo gran sobrecarga de datos como en tu caso. >> directamente creo una base de datos por dia ej. (st010211.dbf) y alli >> guardo >> todos mis movimiento. y tendras que tener una base de datos con las >> referencias por dia con el nombre que corresponde a la base a actualizar. >> es >> un laburo de hormigas pero vale la pena. luego los informes solo es >> cuestion >> de algoritmos. >> oviamente esto cambiara y tendres que modificar bastantes tares en el >> codigo. pero es una solucion a largo tiempo. >> un abrazo y espero que soluciones el problema >> > Gracias amigo, si, tiene toda la razon, hay que dividir, ahorita estoy > haciendo pruebas haber de que manera divido, pero como tu dices, si es > cambio en el codigo. > > Saludos > Osvaldo Ramirez > | |
Osvaldo Ramirez | Re: Limite on Sun, 19 Jun 2011 22:24:07 -0600 Me uno mi estimado Jose Que ponemos y Donde para que un DBF + NTX utilize 4gb, claro sabiendo que puede habler problemas con las app de clipper ? Saludos Osvadlo Ramirez | |
Osvaldo Ramirez | Re: Limite on Tue, 21 Jun 2011 10:56:23 -0600 Estimados Hice algunas pruebas con la configuracion de los DBE, pero no di pie con bola al tratar de aumentar la capacidad de los DBF. Mejor segui los consejos, divide y venceras. Un proceso de mis temporales, ya lo saque, es decir ya esta solucionado. Muchas gracias por sus tiempos. Saludos Osvaldo Ramirez | |
Angel Pais | Re: Limite on Tue, 21 Jun 2011 15:15:35 -0300 Osvaldo: Si de verdad a tu clietne le gustan las estadisticas, entonces te recomiendo pasar los datos a una gran tablas sqlite ( se supone que maneja hasta terabytes de datos ) y despues le aplicas este paquete: http://www.sofastatistics.com/home.php Con eso tiene todo tipo y color de estadisticas ademas de informes customizados. Si quiere mas que eso que mejor contrate un matemático !!! | |
Osvaldo Ramirez | Re: Limite on Tue, 21 Jun 2011 20:41:17 -0600 Dime amigo, que has logrado hacer con esto ? Saludos Osvaldo Ramirez | |
Jorge L | Re: Limite on Tue, 21 Jun 2011 19:59:48 -0300 Hola a todos luego de haber leído varias veces la explicación de José creo entender que sólo recuerda que el default del tamaño del archivo es 1gb que coincide con la cantidad de registros lokeados y explica como superar este límite y llevarlo a 2gb pero no especifica como creí entender al principio, que se podía superar los 2gb, tema por el cual se ha abierto este hilo saludos "Osvaldo Ramirez" escribió en el mensaje de noticias:4e5faec3$48bb2d6c$10f43@news.alaska-software.com... Estimados Hice algunas pruebas con la configuracion de los DBE, pero no di pie con bola al tratar de aumentar la capacidad de los DBF. Mejor segui los consejos, divide y venceras. Un proceso de mis temporales, ya lo saque, es decir ya esta solucionado. Muchas gracias por sus tiempos. Saludos Osvaldo Ramirez | |
Jos Luis Otermin [Alaska Software] | Re: Limite on Tue, 21 Jun 2011 21:34:52 -0300 Jorge, Tu segunda lectura fue apropiada. Hice una prueba simple (adjunto cdigo fuente) cuyos resultados comparto. Me limit a hacer las pruebas (el banco de pruebas produce verdades inapelables) y obtuve un mensaje de error IDSC el cual nos dice que se alcanz el lmite. En mi prueba puse a ejecutar DBAppend() en un bucle que debera haber creado una tabla de 2,5 GB. Sin embargo, el resultado indica que no puede superarse el lmite de 2GB. Es probable que se deba al diseo del modelo DBF o limitaciones de los ndices NTX o CDX. Recordemos que para 1980 (momento de creacin del diseo DBF) ya 640 Kb era MUCHA memoria. Osvaldo, sugiero uses PostgreSQL que es FREEWARE y slida, porque las dems BD no renen AMBAS condiciones. Adems, PostgreSQL ser el modelo nativo de datos y, por tanto, sers compatible con Xbase++ 2.0. Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software PD: De todas formas, a la luz de los resultados, he enviado el ejemplo al soporte interno para su anlisis. Todava no est todo dicho "Jorge L" <jlborlando@way.com.ar> escribi en el mensaje news:251ee70b$6832f0e0$13ed1@news.alaska-software.com... > Hola a todos > > luego de haber ledo varias veces la explicacin de Jos > creo entender que slo recuerda que el default del tamao del archivo es > 1gb > que coincide con la cantidad de registros lokeados y explica como superar > este lmite y llevarlo a 2gb > pero no especifica como cre entender al principio, que se poda superar > los 2gb, tema por el cual se ha abierto este hilo > > saludos > > > > "Osvaldo Ramirez" escribi en el mensaje de > noticias:4e5faec3$48bb2d6c$10f43@news.alaska-software.com... > > Estimados > > Hice algunas pruebas con la configuracion de los DBE, pero no di pie con > bola al tratar de aumentar la capacidad de los DBF. > > Mejor segui los consejos, divide y venceras. > > Un proceso de mis temporales, ya lo saque, es decir ya esta solucionado. > > Muchas gracias por sus tiempos. > > Saludos > Osvaldo Ramirez > Test2GB.PRG Project.xpj | |
Osvaldo Ramirez | Re: Limite on Tue, 21 Jun 2011 20:39:25 -0600 Muchas gracias amigo. Saludos Osvaldo Ramirez | |
Gustavo M. Burgos | Re: Limite on Wed, 29 Jun 2011 19:44:25 -0300 jose luis te hago una pregunta. si la base de datos esta creada con algun utilizario de clipper. lo mismo se puede extender mas alla de los 2 g. bueno no es una buena pregunta. pero mas vale pregunta que quedarse con la duda. saludos Gustavo M. Burgos Rivadavia N 278. Pcia Roque Saenz Pea - Chaco Argentina Fijo 03732-420635 Movil 3732-408559 Burmanspm@arnet.com.ar | |
Jos Luis Otermin [Alaska Software] | Re: Limite on Thu, 30 Jun 2011 13:14:55 -0300 Hola Gus, Por lo que tengo entendido, ms all de los 2GB con DBF, no. Para que Clipper sea compatible, tiene que estar enlazado como dice la documentacin, con NTXLOCK2.OBJ, y se podrn compartir tablas de hasta 2GB. Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Gustavo M. Burgos" <Burmanspm@arnet.com.ar> escribi en el mensaje news:22b69dc2$26bdda4c$53db2@news.alaska-software.com... > jose luis te hago una pregunta. si la base de datos esta creada con algun > utilizario de clipper. lo mismo se puede extender mas alla de los 2 g. > bueno no es una buena pregunta. pero mas vale pregunta que quedarse con la > duda. saludos > > -- > Gustavo M. Burgos > Rivadavia N 278. > Pcia Roque Saenz Pea - Chaco > Argentina > Fijo 03732-420635 > Movil 3732-408559 > Burmanspm@arnet.com.ar > | |
Jos Luis Otermin [Alaska Software] | Re: Limite on Thu, 30 Jun 2011 21:59:54 -0300 Osvaldo, Espero hayas extrado algo positivo de todo este hilo. Mira, si el tamao y performance de la BD es el tema, sugiero usar ODBCDBE y PostgreSQL. La migracin de tablas es sencilla y puedo pasarte el programa que hice para migrar las mas. La sintaxis de acceso, manejo y administracin de tablas es LA MISMA de DBF. Por supuesto, se puede optimizar al sistema cambiando las aperturas de tablas y filtrados (por medio de ndices y ciclos DO...WHILE) a sentencias SQL. Lo que resulta claro es que USAR UNA BD SQL con ODBCDBE lleva algo ms de 2 hs. El resto es cuestin de convertir cdigo para superar la velocidad de ejecucin actual. S que intentaste usar PostgreSQL. Qu puedes contar? Obviamente yo no usara MySQL porque NO es freeware. Para eso, usara Oracle 10g que s lo es para pocos usuarios. Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Osvaldo Ramirez" <ramirezosvaldo@prodigy.net.mx> escribi en el mensaje news:47e024c9$6e0d6588$4cb0d@news.alaska-software.com... > > Estimados > > Alguna configuracion para pasar el limite de los 2gb en DBF - NTX ? > > usado 1.9.335 > > NO ADS > > Como comentario, lo uso con temporales, > > Saludos > Osvaldo Ramirez |