FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Gracias enucemene.
Sin embargo, uf, procedimientos almacenados... ¿podías darme algún ejemplo? es que esto de los sp no lo llevo muy bien. ¿Por qué dudas de que la BD tenga millones de datos? Ahora mismo tengo 12.000.000 (aprox.) datos en la base. Doce millones y pico de datos. Te lo aseguro. |
#2
|
||||
|
||||
Hola, Aquí te dejo un pequeño manual de procedimientos almacenados válido también para Firebird:
http://www.firebird.com.mx/imagenes/...lmacenados.pdf Saludos
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
|||
|
|||
Un procedimiento almacenado creo que no soluciona tu problema.
Es posible, sin embargo, que tus consultas puedan mejorar si incorporas un indice sobre el campo fecha (en caso que no lo tengas). Aunque puede definir una estrategia valida (a pesar de tener redundancia de datos) que consistiria en elaborar un trigger after insert (despues de insertar) sobre la tabla tablasensores que escriba a otra tabla llamada por ejemplo fechassensores, los campo de esta tabla pueden ser {fecha, sensor, contador}. Entonces cada vez que ingrese un registro a la tabla tablasensores, busque en la tabla fechassensores si existe un registro con la fecha y numero de sensor, en caso de no existir crea el registro con los valores {fecha, sensor, 1}; en caso que ya exista un registro, simplemente le sumas uno al campo contador. Defini el campo contador por si necesitas saber cuantas registros por fecha hay para cada sensor.
__________________
Luis Fernando Buelvas T. |
#4
|
|||
|
|||
Olvidaba comentar que luego hacer consultas en la fechassensores va a ser relativamente facil y por supuesto muchisimo mas rapido.
Logicamente el sacrificio que tendra el sistema es que sera mas lento la entrada debido a las verificaciones, faltaria saber que tan alto es el volumen de registros por unidad de tiempo (por ejemplo cuantos registros po minuto) entran a la base de datosa ver si esta estrategia pueda trabajar de manera eficiente.
__________________
Luis Fernando Buelvas T. |
#5
|
|||
|
|||
Gracias por vuestra ayuda y comentarios.
Lo que comentas, Luis, me parece muy interesante, una buena idea. Sin embargo, con una base de datos ya implementada y en uso desde hace meses, en la que ya hay doce millones y pico de registros, me parece que ya es un poco tarde porque me obliga a reingresar todos los datos. Es desde luego buena idea para llevarla a cabo con la base en blanco. Tomo nota para una futura base de datos. Deduzco, por lo que me comentáis, que no se puede ni filtrar los datos, ni hacer una consulta sobre los resultados de otra consulta que eran las dos opciones que lanzé al principio. ¿Es esto correcto? De ser así, y en este punto en el que ya tengo ese montón de datos, ¿qué me queda? Lanzar la segunda consulta que apuntaba en mi primera intervención y esperar ¿no? Lo que me preguntas Luis, en la BD ingresa un dato cada minuto de un total de 62 sensores, de ahí la cantidad inmensa de datos a la que no daba crédito enecumene. Y esa cantidad es para medio año: aún nos queda ingresar el otro medio. Debo decir, que a pesar de esa monstruosidad, Firebird la mueve con soltura y en ningún momento se nota ese peso. Detrás hay un buen trabajo en cuanto a índices, que me llevó bastante tiempo y muchas consultas a este foro. Si os interesa, podéis echar un ojo a este hilo: http://www.clubdelphi.com/foros/showthread.php?t=53508 Gracias. Un saludo. |
#6
|
|||
|
|||
Bueno lo que planteas es un sistema en linea que recibe registros de 62 sensores donde cada uno envia informacion cada minuto.
En esas condiciones no tendrias problema con la solucion que te planteo, en ocasiones es bueno tener tablas resumen para evitar tareas que consumen demasiado tiempo al motor de bases de datos en dar respuesta. Lo que puedes haceren realizar pruebas en una base de datos en blanco como lo estás comentando, cuando te funcionen implementas los triggers en tu base de datos en producción. Para los datos antiguos, debes elaborar un procedimiento almacenado que reconstruya los registros de fechas que ya estén registradas en la base de datos. La ejecución de ese procedimiento almacenado no te va a interferir con el trabajo de los triggers con los datos nuevos.
__________________
Luis Fernando Buelvas T. |
#7
|
|||
|
|||
Si colocas los metadatos de las tablas sobre las cuales necesitas la elaboración de los triggers y procedimientos almacenados, con mucho gusto puedo colaborarte y de paso te introduces en el manejo de procedimientos almacenados.
__________________
Luis Fernando Buelvas T. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como saber numero de registros de una tabla usando un clientdataset? | acl_gandalf | Conexión con bases de datos | 11 | 26-06-2023 19:09:19 |
Saber el número de registros llenos en un campo | mmmbopzombie | Tablas planas | 2 | 28-11-2005 09:54:31 |
Query, como saber el numero de Registros ? | Pascual Montes | Conexión con bases de datos | 5 | 09-12-2004 17:14:17 |
Saber cuantos registros origino la consulta | JorgeBec | SQL | 1 | 12-11-2004 16:48:17 |
Saber el numero de registros consultados | estudiante | SQL | 2 | 13-05-2003 00:12:09 |
|