imagenes en una BD de SQLServer

30/11/2006 - 20:57 por SergioT | Informe spam
Hola
en la aplicacion que estoy desarrollando necesito guardar imaganes que son
fotos y firmas de los clientes, para verificaciones visuales en caja, pero
la base de datos que tengo ya es bastante grande, estaba pensando crear una
BD nueva y en ella tener una tabla que tenga los siguientes campos
"CodCliente,Foto1,Foto2,Firma", esto implicara qiue si quiero ver la foto
de un cliente deberé hacer algo así

select *
from Cliente C
inner join BDFotos.dbo.ClienteImagenes F
ON C.CodCli=F.codcli

la pregunta es:

es buena idea separar la base de datos de imagenes de la de datos? por el
peso sobre todo,
influye en el desempeño de la consulta el hecho de tener imagenes
almacenadas en la BD y en otra BD

Que me sugieren para manejar las imagenes de la forma mas eficiente y segura
posible

Espero sus comentario, gracias de antemano
Salu2
Sergio T.

Preguntas similare

Leer las respuestas

#6 Maxi
02/12/2006 - 14:34 | Informe spam
Hola, claro que me ha solucionado problemas de escalabilidad, por ej de
cambiar de un server a otro y lo unico que cambie en las aplicaciones fue la
cadena de conexion, tambien me ha permitido en casos donde queria tener mas
fino el tunig separar en filegroups.
En otras palabras pude escalar hacia arriba en los servers sin mucho
esfuerzo desde el lado de las aplicaciones, me ha pasado tambien en planes
de contingencia que me ha ayudado bastante ya que hice un restore en otro
server y tenia todo funcionando de inmediado. O sea, a nivel administrativo
para mi es una ventaja y tambien me ha pasado en varios clientes que algunos
auditores me han cuestionado de tener los documentos sin control , o sea:
como se entaraba la aplicacion que en el filesystem habia un cambio, se que
es un tema muy discutido de hecho yo antes lo ponia fuera, pero cuando
espece a despejar algunas cuestiones como que decian q era lento, etc, etc,
eso jamas me ha pasado y pude ver que SQLServer esta bien preparado para
trabajar con este tipo de datos dentro, de hecho ahora en 2005 se puede
hacer lo mismo con el CLR, XML, etc, estos reciden dentro y no hace
referencia el motor a partes externas :)


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
"Miguel egea" wrote in message
news:%
Mostrar la cita
#7 SergioT
02/12/2006 - 14:57 | Informe spam
Hola

veo que hay dilema pero yo estoy de acuerdo con Maxi en guardar las imagenes
en la BD, sobre todo por seguridad de las imagenes. Mi pregunta en realidad
es ¿ Que les parece crear una BD paralela con tablas que colo guarden
imagenes? por ejemplo tendré imagenes de clientes, productos, documenteos
pero no quiero cargar la BD principal con esto ya que no siempre utilizare
las imagenes peor las tablas maestras de clientes, productos por que son de
alto uso, asi que meterle un campo de imagenes no me parece muy buena idea y
crear una tabla de imagenes en la misma BD no me parece tampoco conveniente
por eso estoy pensando crear una BD de imagenes con 2 0 3 tablas que tengan
la llave y la imagen, que les parece????

salu2 y gracias por los comentarios
Sergio

"SergioT" escribió en el mensaje
news:
Mostrar la cita
#8 Maxi
02/12/2006 - 15:13 | Informe spam
Hola Sergio, no es mala idea, yo lo que si hago es separarlas en filegroups
distintos


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
"SergioT" wrote in message
news:
Mostrar la cita
#9 Miguel egea
02/12/2006 - 15:57 | Informe spam
Maxi, con todos mis respetos, eso que dices no es escalabilidad, vamos por
partes.

Separar en filegroups puede mejorar el rendimiento para tu situación, pero
como hemos discutido muchas veces, por la arquitectura de SQL las imágenes
se grabarán 2 veces una en el log y otra en los archivos de datos, por tanto
es al menos el doble de coste de disco (es más incluso).

Escalar implica que se admitan más conexiones, y metiendo las imágenes en la
base de datos jamás jamás jamás hará que sea más escalable.

¿escalar hacia arriba? Te refieres a ¿ escalabilidad vertical? confundes el
concepto, eso solo quiere decir que se puede poner una máquina más grande.

Tenerlo en el filesystem implica quizá una pequeña sobrecarga en el control
de permisos y todo esto es cierto, pero consumirá casi seguro menos recuros

Lo demás que dices puede afectar a la disponibilidad (nunca a la
escalabilidad) pero aún así es mucho más que discutible.

En resumen, creo que simplemente tienes un error de conceptos, eso que
describes puede ser muchas cosas ,pero nunca nunca es escalabilidad.

En cualquier caso yo no estoy ni de acuerdo ni en desacuerdo con meter
imágenes y o documentos en la BBDD. Solo que me sorprendío muchísimo que
dijeses que es más escalable. No lo es, te equivocas, has confundido el
concepto, pero :-) no pasa nada..

Saludos
Miguel Egea


"Maxi" wrote in message
news:%
Mostrar la cita
#10 Miguel egea
02/12/2006 - 15:59 | Informe spam
También disiento, si las separas en distintas bases de datos tendrás que
coordinar los backups o puedes tener el mismo problema que si estuviese en
el filesystem. ¿no?.

Si lo que buscas es rendimiento metelas en distintos filegrousp y asegurate
que esos filegroups tienen distintos discos y controladoras, de lo contrario
tampoco mejorará el rendimiento.

Saludos
Miguel EGea
"Maxi" wrote in message
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida