FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cita:
Como voy a agrupar frecuentemente por hora y presumo que también por mes, puedo crear una columna HORA_STR tipo CHAR(10) cuyo dato sea tal que así: 2008011508 (Año 2008, mes 01, día 15, hora 08) y ponerle un índice. Y otra MES_STR tipo CHAR(6) con datos: 200801 (año 2008, mes 01) y ponerle otro índice. De esta forma, al agrupar por hora no tengo que hacer un extract(hour from fecha) sino sencillamente agrupar por el campo HORA_STR. ¿Os parece buena idea o es una tontería? Lo que dice fjcg02 me acongoja un poco... mis conocimientos son bastante pobres. Un saludo. |
#2
|
||||
|
||||
Cita:
Además, soy el primero que utiliza firebird - y cualquier otro motor - según se instala, sin cambiar nada. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - Última edición por fjcg02 fecha: 25-02-2008 a las 10:56:25. Razón: corregir frase |
#3
|
|||
|
|||
Era broma.
Lo que dije, fcjg02, supongo habrás entendido que era broma. Por supuesto que cualquier aportación será bien recibida, incluso si es un tirón de orejas.
Saludos. |
#4
|
||||
|
||||
Es mejor dejar el año, mes, dia en columnas separadas que meterlas en un solo campo. La razon es que en vez de tener un solo indice tenes 3>, se hace muy optimo las consultas y es mas flexible porque tampoco tienes que hacer substring (por ejemplo, para llegar al dia) y ademas los campos se pueden dejar tipo INTEGER que es mas optimo que tipo STRING.
Por lo demas, tampoco es de enredarse mucho la pita. Hay un principio (el de Paretto) que dice que el 80% del esfuerzo se concentra en el 20% de las cosas. Determina que es lo mas probable y optimiza para ello, pero no te pongas a complicarte (igual, la optimizacion prematura causa mas lios que lo que mejora). En terminos generales, tunear la BD, tener suficiente RAM y si se puede contar con discos en RAID o al menos 2 separados (1 para el OS otro para la BD) es mas que suficiente en la mayoria de los casos.
__________________
El malabarista. |
#5
|
|||
|
|||
Personalmente creo que es una buena idea, de hecho si estuviera en tu situacion la consideraria seriamente
Ahora bien respecto del volumen de datos, y ya que se planteo por ahi el crear una tabla por cada sensor, por que no crear una tabla por año??, serian un numero de registros conocidos 565000 aprox y para el primer intento se podrian poblar con datos ficticios, hacer un par de consultas, y ver que como responde la aplicacion y el servidor Definitivamente le recomendaria al cliente linux como sistema operativo, tanto por costo como por estabilidad (estoy desarrollando una aplicacion para windows que usa una base de datos Mysql en linux y al hacer las pruebas el rendimiento es bastante bueno, casi pareciera que estuviese local, la base esta en un servidor HP SCSI) Última edición por tocomi fecha: 26-02-2008 a las 20:59:25. |
#6
|
|||
|
|||
Gracias Tocomi por tu opinión. De hecho la base ya la tengo estructurada (con posibilidad de hacerle cambios) y estoy buscando formas de meterle los datos desde ficheros CSV. Lo de estructurarla por años, no me parece mala idea, pero me he enterado que el proyecto va a durar 5 años de recogida de datos y con esta cantidad de datos, firebird los aguanta perfectamente según he leído en la documentación que me han recomendado en este hilo.
Sí que he añadido los índices para anyo, mes, día y hora, los he puesto tipo integer como me recomendaba mamcx. Y también como me recomendaba mamcx, he decidido no "enredarme mucho la pita". He decidido un diseño de acuerdo a lo que me habéis indicado y lo he puesto en marcha. Ya os iré diciendo qué tal va... |
#7
|
||||
|
||||
En ese caso, te recomiendo que leas, en mi blog, la entrada Exportar Datos de Firebird, que habla de como exportar/importar datos desde un csv de manera sencilla a firebird.
Siempre son bienvenidas las historias de éxito sobre firebird... Un saludo
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
|||
|
|||
Cita:
Gracias Juan Antonio por tu sugerencia. Sin embargo, he visitado la entrada de tu blog y, si mal no he entendido, allí tratas el tema de exportar de Firebird a csv. Yo ahora mismo lo que pretendo es justamente lo contrario, importar de csv a delphi. Tengo los datos en un fichero csv separados por punto y coma y quiero leerlos y ponerlos en una tabla de firebird. En la entrada dices que la importación lo dejas para una próxima entrada, la cual estoy ya impaciente por leerla. Lo que voy a intentar hacer es un readln de cada línea del fichero csv, después con la utilidad strman.pas (completísima unidad con infinidad de utilidades para trabajar con cadenas de texto -en torry está-) le voy quitando lo que hay delante de cada ; y lo asigno al campo correspondiente. De tu blog me he descargado la hoja de trucos para Firebird. Interesante, pero echo de menos funciones estadísticas (min, max, avg, etc) Una cosa, he intentado añadir tu blog a Google Reader y no he encontrado la sindicación de RSS. ¿No la encuentro o no existe? En cuanto a lo que comenta Casimiro, me alegra saber que hay gente con bases de firebird muy muy grandes sin problemas. Un saludo a todos. |
#9
|
|||
|
|||
Cita:
Código:
function Buscandocol(lintmp:string;nrocol:integer):string; var i:integer; hasta:integer; largo:integer; dato:string; valor:integer; begin lintmp:=trim(lintmp); For i:=1 to nrocol do begin largo:=length(lintmp); hasta:=pos(';',lintmp); dato:=copy(lintmp,1,hasta-1); lintmp:=copy(lintmp,hasta+1,largo); end; result:=trim(dato); end; En terminos practicos haces el readln, lo dejas en una variable string, por ejemplo "linea" y para buascar la quinta columna la sintaxis seria: Buscandocol(linea,5); Te devolveria lo que esta en la quinta columna, en formato String Nos cuentas como te va Última edición por tocomi fecha: 28-02-2008 a las 13:54:51. |
#10
|
||||
|
||||
Cita:
una duda viendo la herramienta para exportar/importar... yo puedo crear/usar un archivo de texto que tenga el siguiente formato: Cita:
Cita:
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#11
|
||||
|
||||
Cita:
Cita:
Cita:
http://jachguate.wordpress.com/feed/ http://jachguate.wordpress.com/comments/feed/ Está en la sección meta.... pero ahora que lo mencionas, quizás no esté lo suficientemente visible o bien identificada... me daré a la tarea de ponerla mas visible en cuanto me sea posible. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#12
|
||||
|
||||
Respecto al tamaño de la base de datos, me gustaría comentar algo que me ha pasado hoy atendiendo a un cliente que hacía tiempo no tenía noticias de él, la conversación fue más o menos así:
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Herramienta case para diccionario de datos de base de datos firebird | mcalmanovici | Firebird e Interbase | 1 | 11-02-2007 15:17:37 |
Como conectarme a una base de datos hecha en firebird? | JuanErasmo | .NET | 5 | 30-12-2006 18:13:03 |
base de datos firebird | Zehcliv | Conexión con bases de datos | 3 | 04-10-2006 17:45:27 |
Como conectar una Base de Datos en Firebird con TSQL Conection ?? | Fer Gómez | Firebird e Interbase | 0 | 08-02-2006 20:52:37 |
como pasar una base de datos de fotografias en access a firebird | Nelly | Firebird e Interbase | 1 | 06-10-2005 17:48:45 |
|