Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-04-2006
javicho_villa javicho_villa is online now
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 105
Poder: 20
javicho_villa Va por buen camino
Thumbs up Proceso de Grabado Masivo en Paradox no funciona

Hola a todos:

Muchas gracias por la atención, tengo un problemita con una aplicacion de planilla de trabajadores, yo hice un proceso por el cual con una tabla de asistencia calculaba todo lo que correspondia pagarale al trabajador, esto a funcionado correctamente hasta hace unas 3 semanas en la cual el proceso se hace extremadamento lento y al ultimo se cuelga la aplicacion.

Bueno yo probe en forma local (la aplicacion trabaja en red )y me di con la sorpresa que el proceso corre perfectamente y ademas es rapido.

Tengo algunas hipotesis:
1. Que tendria que hacer un pack a las tablas involucradas (sinceramente tengo miedo de hacerlo por malograr la estructura o algo similar y no se como hacerlo adecuamente tambien).

2.Que tendria que revizar mis querys y optimizarlos (uso algunos join pero cuando trabajo localmente fucniona creo q por ahi no va).

Les agradeceria mucho amigos si me pueden ayudar un poco con este tema.

Saludos,

Javier Villa.
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com
Responder Con Cita
  #2  
Antiguo 01-05-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para que alguién pueda darte alguna indicación al respecto, convendría que nos dijeras, cuantos registros tienen las tablas involucradas y que tipo de SQL lanzas para que ocurra el problema que comentas.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 04-05-2006
javicho_villa javicho_villa is online now
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 105
Poder: 20
javicho_villa Va por buen camino
Gracias

Bueno son 3 tablas las involucradas una tiene 37,000 registros (DetalleBOleta) la otra 3176 (Boleta) la planilla 78 registros y la de Asistencia 14,453.

Las sentencias de SQL. van dirigidas a la tabla de asistencia pidiendo solo bloques que corresponden
Código SQL [-]
select * from Asistencia where id_trabajador = MiTrabajador
son varios metodos que recorro bloques asi.

El problema creo que se centra cuando se trabaja en RED, por que cuando se trabaja en una maquina fuera de la RED el proceso funciona correctamente, en cambio cuando estamos en red no culmina el proceso a parte de que la velocidad es mala.

Tiene que ver que tengo que hacer un pack a las tablas involucradas (ya que borran modifican a cada rato).

Saludos,

Javier
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com
Responder Con Cita
  #4  
Antiguo 04-05-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
El volumen de datos no es excesivo debiera de funcionar correctamente también en Red.

Pero hay que tener en cuenta que Paradox con SQL no maneja los índices y que además tanto en filtros como en SQL, aunque filtra una parte se trae la tabla entera por la red, porque la consulta se resuelve en el cliente en vez de hacerlo en el servidor.

Tendrías que hacer un Pack ya que como dices que se borra constantemente seguro que la tabla está sobredimensionada y luego probar el rendimiento.

Pero si según dices se borra constantemente, el pack no sería una solución ya que no puede hacerse en red, a no ser que se logre el uso exclusivo de la tabla.

Una solución pudiera ser tener una tabla temporal y allí enviar solamente los registros que se van a procesar, recorriendo la tabla original con un bucle, pero indexado por el campo que corresponda, asi tardará en razón del volumen de datos que se requiera y no del volumen de la tabla.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 04-05-2006
javicho_villa javicho_villa is online now
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 105
Poder: 20
javicho_villa Va por buen camino
Una consulta un poca tonta

Se malogran la estructura de la tabla cuando se hace un pack (paradox), lo que pasa es que gtengo miedo de que se dañe las tablas aunque estas no tienen ningun indice todo lo hago por consultas sql.
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com
Responder Con Cita
  #6  
Antiguo 04-05-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo utilizo Pack y no se malogran las estructuras de las tablas y algunas tienen
más de 100.000 registros y múltiples índices.

En cualquier caso lo que yo te proponía, es crear una tabla capaz de contener los datos que vas a evaluar, nada más empezar, haces un MiTabla.Empty, esta tabla puede estar en cada PC, así cada uno tiene la suya y puede estar en uso exclusivo.

Luego la tabla que contiene los datos (Obligatorio que esté indexada por el campo que vamos a utilizar para hacer la selección)

MiTabla.IndexName:='xxxx';

Buscar primera ocurrencia y recorrer hasta que no exitan más:
Recorrer tabla origen e ir añadiendo a la tabla destino, de esta manera solo se mueven los datos que se van a procesar y no toda la tabla.

Esa es la idea.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 05-05-2006
javicho_villa javicho_villa is online now
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 105
Poder: 20
javicho_villa Va por buen camino
Thumbs up Funciono el Pack

Le hice un pack manualmente por DataBase Desktop y la velocidad mejoro muchisimo el proceso termino sin ningun problema

- Pero este proceso es de una planilla de remuneraciones que a sus vez tiene en su detalle varias boletas (por trabajador) y cada boleta tiene en su detalle diversos conceptos, cuando elimino una planilla se eliminan un registro en la tabla planillas varios registros en el detalle en decir sus boletas y muchisimo mas en el detalle de boletas que tiene los conceptso de cada boleta.

A lo que quiero llegar es que se elimina logicamente mas no fisicamente y esto lo hacen seguido. (aqui se genera el problema)

Lo que me recomiendas marcoszorrilla suena muy bien podrias explicarme un poquito mas.

Muchas gracias de verdad me sirve de mucho tu ayuda.

Saludos,

Javier Villa.
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reemplazar Componentes (Masivo) vtdeleon Varios 7 11-09-2005 17:31:42
Traspaso masivo de datos .DBF eibarra Conexión con bases de datos 1 06-04-2005 16:06:59
consula de incremento masivo tutuk SQL 2 15-12-2004 04:25:01
Problemas al vacias BBDD con borrado masivo oesteve Firebird e Interbase 2 10-05-2004 11:24:01
¿funciona paradox (.DB) con visual fox pro? Robert Tablas planas 1 15-01-2004 21:34:54


La franja horaria es GMT +2. Ahora son las 23:21:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi