Imágenes en SQL Server
Tenemos una BD SQL Server 2000 sobre la que operan 3 aplicaciones, una para entorno de red local desarrollada en Borland C++ Builder y las otras dos para intranet e internet desarrolladas en ASP i ASP.NET. En dichas aplicaciones gestionamos una gran cantidad de archivos adjuntos, tanto imágenes (JPEG, BMP) como documentos PDF. La vinculación de las aplicaciones con estos archivos la hacemos guardando su ruta en campos varchar.
Hace poco nos hablaron de que podíamos sustituir estos campos con las rutas por campos Image (o mejor VarBinary) donde guardar directamente las imágenes y no tener que depender de los archivos y las rutas externas a la BD (esto alguna vez nos ha causado algún conflicto debido a algún cambio en algún recurso de red).
Mi pregunta es: ¿Es aconsejable dar este paso? ¿Se resentirá mucho, poco o nada el rendimiento de la BD?
Buscando, hemos encontrado dos respuestas en este mismo foro que son un poco contradictorias; las dos respuestas se refieren a sendas preguntas del día 09-03-2010 hechas para SQL Server 7.
Respuesta 1: "En cuanto a la primera cuestión te recomiendo que las imágenes las almacenes en la base de datos SQL Server 7. Es mucho más potente que Access en cuanto a la gestión de imágenes. Hay webs en las que hay Gigas de datos en campos imágenes (por ejemplo los mapas y callejeros) y funcionan perfectamente. Hace tiempo estuve leyendo un artículo sobre esto y viendo una web hecha así con SQL Server y la verdad que iba muy bien".
Respuesta 2: "Aunque lo que quieres hacer es posible, no te lo recomiendo. Lo que se suele utilizar en estos casos es que en este campo es mejor que indiques la ruta de llamada donde se encuentra la imagen, de esta forma te funcionará igualmente y no cargaras el rentimiento de la BDD ya que éstos campos almacenan en cada fila valores de 16 bytes".
¿Quién tiene razón?
Gracias y perdón por el "tostón".
Hace poco nos hablaron de que podíamos sustituir estos campos con las rutas por campos Image (o mejor VarBinary) donde guardar directamente las imágenes y no tener que depender de los archivos y las rutas externas a la BD (esto alguna vez nos ha causado algún conflicto debido a algún cambio en algún recurso de red).
Mi pregunta es: ¿Es aconsejable dar este paso? ¿Se resentirá mucho, poco o nada el rendimiento de la BD?
Buscando, hemos encontrado dos respuestas en este mismo foro que son un poco contradictorias; las dos respuestas se refieren a sendas preguntas del día 09-03-2010 hechas para SQL Server 7.
Respuesta 1: "En cuanto a la primera cuestión te recomiendo que las imágenes las almacenes en la base de datos SQL Server 7. Es mucho más potente que Access en cuanto a la gestión de imágenes. Hay webs en las que hay Gigas de datos en campos imágenes (por ejemplo los mapas y callejeros) y funcionan perfectamente. Hace tiempo estuve leyendo un artículo sobre esto y viendo una web hecha así con SQL Server y la verdad que iba muy bien".
Respuesta 2: "Aunque lo que quieres hacer es posible, no te lo recomiendo. Lo que se suele utilizar en estos casos es que en este campo es mejor que indiques la ruta de llamada donde se encuentra la imagen, de esta forma te funcionará igualmente y no cargaras el rentimiento de la BDD ya que éstos campos almacenan en cada fila valores de 16 bytes".
¿Quién tiene razón?
Gracias y perdón por el "tostón".
1 Respuesta
Respuesta de juliusguate
1