Manejo de imagenes

24/02/2004 - 23:28 por Jorge Ramón | Informe spam
Hola, estoy trabajando un proyecto en el cual el manejo
de imágenes es crítico. Estamos hablando de alrededor de
unas 100,000 imagenes de tamaño regular diarias con un
historial de dos meses.

Mi pregunta es, Qué tan recomendable es utilizar SQL
Server para almacenar estas imágenes?

Alguna sugerencia?

Gracias y Saludos!

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
24/02/2004 - 23:40 | Informe spam
Hola!! bue es un tema mas que recurrente este (muchachos de las FAQ andan
por ahi?)

Todo depende, tenerlas en el motor tiene sus ventajas y sus no tan ventajas:

Las ventajas son mas que visibles creo (no tendrias problemas de links rotos
o cambiados, si haces un backup copias hasta las imagenes,etc)

Ahora como gran desventaja es el tamaño que esto puede llegar a consumirle a
SqlServer, aqui quizas puedas poner un control de que tan grande puede ser
una imagen, pero si la cosa es muy pesada te recomiendo que pases al plan B
(que de por si debe ser mas viejo que mi abuelita :p)

Este plan consiste en tener en la BDD solo el link de la imagen y listo!!

Para solucionar el tema de links rotos, lo que yo hago es un proceso que
cada X tiempo verifica las inconsistencias y alerta a el Admin del Sistema.

Claro esto no garantiza que te cambien una imagen por otra aunque quizas
aqui pueda aplicar algun truquillo que aprendi por ahi:

Como sabes un Archivo tiene un tamaño (kb por ej) y adentro del mismo tiene
su codigo en Hexa, bue lo que se puede hacer es que en la BDD exista:

El tam del Archivo y por ej tantos Bytes internos del archivo (esto
dependera del archivo, si sos observador veras que cualquier archivo empieza
hasta una X posicion igual y luego cambia, eso es porque en su principio
quizas este solo el formato (jpg,blbla) y luego los datos propiamente
dichos)

Si esto lo tienes guardado como dato, tambien puedes hacer un proceso que lo
verifique como el anterior de los links y ademas de ello que cada vez que se
lea el Archivo se verifiquen esas marcas contra la de la BDD.

No es Guauuuu esto pero ayuda y un monton de verdad.

Con respecto a la ubicacion quizas sea muy interesante que definas una
variable a la que le pones la ruta ej (\\servidor\d\blabla)

Bue todo esto son solo algunas cosas, espero te sea util de verdad




Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Jorge Ramón" escribió en el mensaje
news:0c1c01c3fb25$7a2fcaa0$
Hola, estoy trabajando un proyecto en el cual el manejo
de imágenes es crítico. Estamos hablando de alrededor de
unas 100,000 imagenes de tamaño regular diarias con un
historial de dos meses.

Mi pregunta es, Qué tan recomendable es utilizar SQL
Server para almacenar estas imágenes?

Alguna sugerencia?

Gracias y Saludos!
#2 Jorge Ramón
25/02/2004 - 00:24 | Informe spam
Hola Maximiliano, gracias por tu pronta respuesta.

La opción de almacenar el path/nombre de archivo de las
imagenes es una de las alternativas que he considerado.

Estoy investigando acerca de la opción de almacenarlas
dentro de SQL por diversas razónes. Entre ellas:

* Las imagenes no estarían a la vista sino protegidas
bajo el esquema de seguridad de SQL.
* El sistema realizará varias operaciones con las
imagenes que, si se almacenan en directorios y se utiliza
un enlace en la base de datos que apunta a ellas,
implicaría varios accesos a disco (para mover las
imágenes de un directorio a otro) que podrían llegar a
ser problemáticos para el servidor.
* Integridad de los datos

Obviamente, así como vos decís, también tiene sus
desventajas. He oído comentarios acerca de que SQL
Server realmente no es bueno para el manejo de imágenes,
que es demasiado lento, etc.; y por ello quisiera tenér
algunos parámetros en los cuales basarme para tomar la
decisión de almacenar estas imágenes dentro de la base de
datos o directamente en el disco.

Vos mencionás el tamaño de la base de datos. Qué tamaño
puedo considerar como crítico? Qué otros datos debo tomar
en cuenta? Qué otras desventajas/ventajas puedo tener?

Gracias por tu ayuda, y espero no estar abusando de tu
confianza.

Saludos!

Mostrar la cita
de las FAQ andan
Mostrar la cita
sus no tan ventajas:
Mostrar la cita
problemas de links rotos
Mostrar la cita
imagenes,etc)
Mostrar la cita
llegar a consumirle a
Mostrar la cita
tan grande puede ser
Mostrar la cita
que pases al plan B
Mostrar la cita
imagen y listo!!
Mostrar la cita
es un proceso que
Mostrar la cita
Admin del Sistema.
Mostrar la cita
otra aunque quizas
Mostrar la cita
adentro del mismo tiene
Mostrar la cita
la BDD exista:
Mostrar la cita
archivo (esto
Mostrar la cita
cualquier archivo empieza
Mostrar la cita
en su principio
Mostrar la cita
datos propiamente
Mostrar la cita
hacer un proceso que lo
Mostrar la cita
que cada vez que se
Mostrar la cita
BDD.
Mostrar la cita
que definas una
Mostrar la cita
(\\servidor\d\blabla)
Mostrar la cita
de verdad
Mostrar la cita
-
Mostrar la cita
ador/default.asp
Mostrar la cita
-
Mostrar la cita
-
Mostrar la cita
#3 Maximiliano Damian Accotto
25/02/2004 - 01:04 | Informe spam
Hola!! bueno hay algunos puntos en los cuales estoy de acuerdo y en otros
no!!

El que mencionas de las operaciones con las imagenes sobre todo!! el que
deberia hacer las operaciones es la capa del Cliente y no el motor, por lo
cual el problema de pasar info por la red no desaparece.

En el punto de la seguridad tambien no estoy de acuerdo por lo siguiente:
tu aplicacion deberia tener usuarios los cuales se conectan al motor, si
usas autentificacion de Windows a estos mismos usuarios les das acceso a el
path y listo, otra tecnica es ocultar las imagenes via encriptacion (hay
algunas DLL muy piolas para esto).

Claro todo esto de poner las imagenes si son muy pesadas hara lento tu
Servidor.

No hay un tamaño ideal de BDD, he conocido casos que tienen BDD que superan
el TB, el tema es si eso lo llenas de imagenes para mi es una locura, y vas
a tener que tener mucho Hard para soportar semejante carga.

Ahora el tema de las imagenes no es un problema se SqlServer, cualquier
motor tiene el mismo problema en general!!!

Deberias de monitorias muy pero muy bien el rendimiento de tu servidor si
vas a optar por tener las imagenes en la BDD y no en Path, pero tu sabras
mejor que yo el ambiente y yo supongo que habras hecho un buen analisis del
Sistema (cuando hablo del sistema no hablo solo la parte programacion, sino
SISTEMA o sea: Soft,BDD,Hard,Usuarios, todo estos son parte de tu sistema)

Bye Bye

Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Jorge Ramón" escribió en el mensaje
news:0c8b01c3fb2d$69941b80$
Hola Maximiliano, gracias por tu pronta respuesta.

La opción de almacenar el path/nombre de archivo de las
imagenes es una de las alternativas que he considerado.

Estoy investigando acerca de la opción de almacenarlas
dentro de SQL por diversas razónes. Entre ellas:

* Las imagenes no estarían a la vista sino protegidas
bajo el esquema de seguridad de SQL.
* El sistema realizará varias operaciones con las
imagenes que, si se almacenan en directorios y se utiliza
un enlace en la base de datos que apunta a ellas,
implicaría varios accesos a disco (para mover las
imágenes de un directorio a otro) que podrían llegar a
ser problemáticos para el servidor.
* Integridad de los datos

Obviamente, así como vos decís, también tiene sus
desventajas. He oído comentarios acerca de que SQL
Server realmente no es bueno para el manejo de imágenes,
que es demasiado lento, etc.; y por ello quisiera tenér
algunos parámetros en los cuales basarme para tomar la
decisión de almacenar estas imágenes dentro de la base de
datos o directamente en el disco.

Vos mencionás el tamaño de la base de datos. Qué tamaño
puedo considerar como crítico? Qué otros datos debo tomar
en cuenta? Qué otras desventajas/ventajas puedo tener?

Gracias por tu ayuda, y espero no estar abusando de tu
confianza.

Saludos!

Mostrar la cita
de las FAQ andan
Mostrar la cita
sus no tan ventajas:
Mostrar la cita
problemas de links rotos
Mostrar la cita
imagenes,etc)
Mostrar la cita
llegar a consumirle a
Mostrar la cita
tan grande puede ser
Mostrar la cita
que pases al plan B
Mostrar la cita
imagen y listo!!
Mostrar la cita
es un proceso que
Mostrar la cita
Admin del Sistema.
Mostrar la cita
otra aunque quizas
Mostrar la cita
adentro del mismo tiene
Mostrar la cita
la BDD exista:
Mostrar la cita
archivo (esto
Mostrar la cita
cualquier archivo empieza
Mostrar la cita
en su principio
Mostrar la cita
datos propiamente
Mostrar la cita
hacer un proceso que lo
Mostrar la cita
que cada vez que se
Mostrar la cita
BDD.
Mostrar la cita
que definas una
Mostrar la cita
(\\servidor\d\blabla)
Mostrar la cita
de verdad
Mostrar la cita
-
Mostrar la cita
ador/default.asp
Mostrar la cita
-
Mostrar la cita
-
Mostrar la cita
#4 perezh
26/02/2004 - 22:13 | Informe spam
Permitanme que les cuente mi breve experiencia. trabaje
casi 5 años en procesamiento de documentos de compensacion
bancaria. El procesamiento se hacia basado en la captura
de las imagenes de dichos documentos (boletas de deposito
y cheques) con scanners de alta velocidad (500 doc por
min). A esa velocidad se grababan en la base de datos.
Guardabamos la imagen como un dato mas dentro del base de
datos. En una red ethernet de 100 Mbps con 40 operadores
en linea se tardaba menos de 1 seg. en mostrar la imagen
del documento en pantalla para el data entry. procesabamos
cerca de 300.000 imagenes por dia. Definitivamente
recomiendo almacenar la imagen dentro de la base de datos.
Detalle: usamos Oracle. Creo que con SQl Server habria que
hacer pruebas pero no creo que 100.00 imagenes representen
un problema.
Mostrar la cita
acuerdo y en otros
Mostrar la cita
sobre todo!! el que
Mostrar la cita
el motor, por lo
Mostrar la cita
por lo siguiente:
Mostrar la cita
conectan al motor, si
Mostrar la cita
les das acceso a el
Mostrar la cita
encriptacion (hay
Mostrar la cita
hara lento tu
Mostrar la cita
tienen BDD que superan
Mostrar la cita
una locura, y vas
Mostrar la cita
carga.
Mostrar la cita
SqlServer, cualquier
Mostrar la cita
de tu servidor si
Mostrar la cita
Path, pero tu sabras
Mostrar la cita
buen analisis del
Mostrar la cita
programacion, sino
Mostrar la cita
parte de tu sistema)
Mostrar la cita
dor/default.asp
Mostrar la cita
Ads by Google
Search Busqueda sugerida