Buen día, Hace un mes implementamos el sistema de asistencias en un cliente, al ver el funcionamiento y los limitantes del Identity como columna primaria me pregunte la forma en la que estaba pensado. ¿Cual era el objetivo del modulo en cuanto a procesamiento? Esta pregunta resalta ya que el proceso se genera tantas veces en el día, para tanta gente que esta consumiendo los identidad de una manera muy acelerada y pronto llegaría al máximo 2,147,483,647 para una columna INT, que es el caso de las tablas involucradas, ext_horas_extras, tnn_tiempos_no_trabajados y asi_asistencias en donde se maneja mayor volumen. Para impedir esto se esta haciendo un RESEED a las tablas con cada DELETE sin embargo es un proceso riesgoso y genera mucha basura en cuanto a LOG. Entonces me pregunto, ¿Lo hicimos de la manera equivocada? ¿Es este modulo para estar procesando asistencia o es solo para ingresar asistencia procesada? Si su función sera estar procesando marcas, ¿sera mejor usar un UID como columna primaria?, ¿Que implicaría este cambio en cuanto al sistema? |
Tanto el procesamiento de marcas como el procesamiento de asistencia debería de hacerse una sola vez para un rango de fechas especifico; por ejemplo, este dia se cargan todas las marcas de la 1era quincena de abril (que pueden ser entre 2 o 4 registros por empleado), esas marcas se convierten en asistencia (que son 15 por cada empleado cuando la planilla es quincenal), esas asistencias algunas generaran HE o ausencias (que si se genera una HE diaria serían 15 por empleado por quincena) Se menciona que hay un proceso de DELETE, quiere decir que borran lo ya cargado ... considero que no habría necesidad dado que si ya pasó un dia completo ese dia se carga y se procesa. Si hay necesidad de correccion de marcas y/o asistencias se hacen directamente en el sistema |