Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

duda con la arquitectura de la BD

Estas en el tema de duda con la arquitectura de la BD en el foro de SQL Server en Foros del Web. Hola, estoy intentando hacer una base de datos en SQL Server 2005 express para incluirla después en un aplicación standalone. Mi aplicación recibe unos cuantos ...
  #1 (permalink)  
Antiguo 21/03/2010, 15:19
jr8
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
duda con la arquitectura de la BD

Hola, estoy intentando hacer una base de datos en SQL Server 2005 express para incluirla después en un aplicación standalone.
Mi aplicación recibe unos cuantos bytes cada pocos milisegundos, los cuales debe ir almacenando.
Mi duda es sobre la mejor arquitectura para realizar esto.
Lo primero que pensé es en crear una tabla automáticamente por cada sesión, pero se complica la inserción de datos mediante procedimientos almacenados al no poder pasar como parámetro el nombre de la tabla.
También he pensado en una única tabla en la que se guarde una fila por cada dato y que además tenga un ID de sesión, pero los datos son de unos pocos bytes (en muchas filas sólo almacenaria un número real) y según he leído por ahí esto desperdicia espacio en disco por ser el tamaño de la página mucho mayor. ¿Habría algún problema con el tamaño de la tabla?
Otra idea que se pasó por la cabeza fue almacenar cada sesión en una fila de una tabla, y los datos en un campo binario, pero el hecho de tener que irlos almacenando poco a poco me ha hecho descartar esto.
También había pensado guardar directamente en fichero y en la base de datos poner el nombre del fichero, pero preferiría tenerlo todo en la propia base de datos.
¿Alguien tiene alguna idea o sugerencia para una aplicación de este estilo? ¿cuál es vuestra experiencia con bases de datos en aplicaciones en tiempo real?
Gracias.
  #2 (permalink)  
Antiguo 22/03/2010, 09:57
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: duda con la arquitectura de la BD

Pues si tu idea es crear una tabla por cada conexion, utiliza el SPID como referencia para crear dicha tabla, aunque sigo sin entender....
  #3 (permalink)  
Antiguo 22/03/2010, 16:36
jr8
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: duda con la arquitectura de la BD

Hola, en primer lugar gracias por responder. Intentaré explicar mejor mi aplicación.
Cada vez que se arranca el programa tengo una nueva sesión que puede durar horas. Durante la sesión se recibe un flujo constante de información de 7 kB/s, me llegan varias tramas de unos pocos bytes cada segundo. Esta información la tengo que almacenar antes de que llegue más información para no perder ni sobreescribir nada.
Mi duda es cuál sería la forma más óptima de hacer esto en términos de eficiencia del uso de cpu y disco. ¿Crear una tabla por sesión y tener un montón de tablas con la misma estructura? ¿Una tabla gigantesca donde meter todo? ¿ficheros externos y almacenar sólo la ruta?...

Saludos.
  #4 (permalink)  
Antiguo 22/03/2010, 17:58
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: duda con la arquitectura de la BD

No, SQL Server esta diseñado para aceptar y manipular eficientemente grandes cantidades de datos, solo toma en cuenta que la edicion EXPRESS solo tiene un limite de 4GB por base de datos.

Asi es que podrias almacenar grandes cantidades de datos en una sola tabla, no requieres de tablas por sesion.
  #5 (permalink)  
Antiguo 23/03/2010, 11:02
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: duda con la arquitectura de la BD

Hola

Otra idea que se pasó por la cabeza fue almacenar cada sesión en una fila de una tabla, y los datos en un campo binario, pero el hecho de tener que irlos almacenando poco a poco me ha hecho descartar esto.


Esto se soluciona con begin y commit

También había pensado guardar directamente en fichero y en la base de datos poner el nombre del fichero, pero preferiría tenerlo todo en la propia base de datos.


Mejor fuera de la BBDD. Cuando tengas 1 Tera o más te acordarás de ello...

Me quedo con la ruta en BD y los ficheros en otro soporte.

Saludos
  #6 (permalink)  
Antiguo 23/03/2010, 11:39
jr8
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: duda con la arquitectura de la BD

Hola,

de nuevo gracias por responder.

El begin y commit lo hago en un procedimiento almacenado que llamo cuando he almacenado en la aplicación varios datos seguidos y los almaceno todos de golpe. Pero no puedo mantenerlo así durante 5 o 6 horas.

El límite de SQL Server Express si que me fastidia bastante...

Lo de almacenar fuera, ¿se podría hacer con filestream en lugar del fichero?

Etiquetas: arquitectura, bd
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:30.