Está claro, pero lo que yo querría averiguar es si los triggers que tenemos en la EPG.db hacen algo parecido, porque en la tabla TASKS, que es donde están todas nuestras programaciones hay un par de campos que se llaman: StartMargin y EndMargin
Una sola vez, con una grabación hecha desde la guía, pude ver en estos campos los valores de guarda 300 y 900 (los 5 y 15 minutos famosos) en el resto de mis programaciones están a cero.
Habría que probar si cambiando en la tabla Config.db se cambian estos valores para todas las programaciones.
Si estos campos funcionaran, se podrían elegir guardas distintas para cada programación en concreto, en vez de programar las mismas para todas.
Hablando de triggers, puse ayer tres triggers mas (yo los veo con SQLiteStudio en un árbol en la izquierda y los abro y modifico junto con las tablas, los índices y las vistas), sobre la tabla EVENTS haciendo un sistema de log sobre una nueva tabla que llamé EVENTSLOG, en esa tabla insertaba un registro con todos los datos que se insertaban. modificaban o borraban sobre EVENTS.
Aclaro que la tabla EVENTS contiene TODA la programación de TODOS nuestros canales para 7 días (la mía tiene 5751 registros ahora mismo) y es la que se actualiza todos los días sobre las 5 de la mañana, pues el resultado de esta mañana era que tenía 62968 registros
He estado analizando lo que hace y es que realiza varias operaciones por cada registro, primero intenta hacer un INSERT y si falla hace el UPDATE correspondiente, pero parece que hace un UPDATE por cada campo, con lo cual se multiplican muchísimo.