Diegazo,

 

Si vas a probar con filesystem, como comentas te vas a encontrar con el
problema del acceso lento en carpetas con muchos archivos … para evitar eso,
podes crear una estructura que te agrupe archivos de 100 por ejemplo:

En lugar de guardar E:\Archivos\file0001.txt … E:\Archivos\file9999.txt …
podes guardar

                                E:\Archivos\0\0\file0001.txt …
E:\Archivos\9\9\file9999.txt

 

Es una técnica rustica pero ganas en performance.

 

También, podes ganar algo de performance con algún toqueteo de parámetros
más fino del filesystem:

-          Tamaño del MFT

-          Deshabilitar la opción de guardar nombres de archivos 8.3

-          Deshabilitar la opción de guardar el timestamp del archivo

-          Estudiar el block size que le das al formatear

-          Alinear la partición al crearla

 

La baja desfragmentación te va a ayudar.

 

Y a esto sumale, las opciones de tunneo que puedas encontrar por hardware:

-          Tipo de discos y velocidades

-          Tipo de RAID 

-          Cantidad de discos en el RAID

-          El cache de discos y controladoras 

-          La opción de un storage externo y el cache que te pueda proveer

 

Algo más, si los archivos los vas a acceder desde un share … una opción que
te va a dar mayor tiempo de respuesta seria usar win2008.

 

 

Un abrazo

 

De: [email protected] [mailto:[email protected]] En nombre de Diego Cepero
Enviado el: Wednesday, October 07, 2009 4:45 PM
Para: [email protected]
Asunto: [dbms] Almacenamiento de BLOBs

 

Ok, seguiremos haciendo pruebas. Muchas gracias, Maxi.

 

  _____  

De: [email protected] [mailto:[email protected]] En nombre de Maxi Accotto
Enviado el: Miércoles, 07 de Octubre de 2009 04:31 p.m.
Para: Diego Cepero
Asunto: [dbms] Almacenamiento de BLOBs

 

Hola, con el filesystem pasa lo que vos decís, en algunos casos se puede
poner lento si accedes vos a la carpeta desde Windows por eso yo te decía
que a mí me gusta mucho mas la idea de poner eso dentro de la base de datos.

 

Uno de mis clientes tiene un storage ibm 4700 y el otro un 3200, el del 3200
tienen filestream pero no lo aplicaron para todo todo.

 

 

 

 

 

Maximiliano Damian Accotto

Microsoft MVP en SQL Server

http://Blog.Maxiaccotto.com

 

De: [email protected] [mailto:[email protected]] En nombre de Diego Cepero
Enviado el: miércoles, 07 de octubre de 2009 04:04 p.m.
Para: Maxi
Asunto: [dbms] Almacenamiento de BLOBs

 

Hola Maxi,

 

            Nos queda una duda con la característica de Filestream de SQL.
En nuestra experiencia, cuando una carpeta del file system tiene muchos
archivos, el acceso a esa carpeta se vuelve lento. En pruebas básicas de
filestream que hicimos, pudimos comprobar que SQL crea una estructura:
/contenedor (filegroup)/tabla/columna. El almacenamiento de los blobs se
realiza en esta última carpeta, con lo cual la cantidad de archivos de esta
carpeta vá a ser muuuuy grande. Si bien hay optimizaciones posibles a nivel
file system (por ejemplo desactivar la compatibilidad con nombres cortos y
el mantenimiento de la fecha de último acceso) y además optimizaciones a
nivel SQL (por ejemplo particionamiento), nos quedan dudas. Podrías darnos
más detalles acerca de cómo implementaron con y sin filestream?
(dispositivos de almacenamiento, particionamiento, etc.)

 

            Gracias, un abrazo.

 

  _____  

De: [email protected] [mailto:[email protected]] En nombre de Maxi Accotto
Enviado el: Miércoles, 07 de Octubre de 2009 11:54 a.m.
Para: Diego Cepero
Asunto: [dbms] Almacenamiento de BLOBs

 

Hola, yo tengo experiencia en el uso de ambas, tengo dos clientes que
guardan miles de documentos e imágenes en SQL Server.

Uno lo hace con Filestream y el otro directo en la base. 

 

La verdad que no te podría decir una comparación , en los dos clientes los
métodos funcionan muy bien y sus bases hoy casi ocupan 400GB,

 Yo prefiero usar varbinary(max) en la base y olvidarme del filesystem

 

 

 

Maximiliano Damian Accotto

Microsoft MVP en SQL Server

http://Blog.Maxiaccotto.com

 

De: [email protected] [mailto:[email protected]] En nombre de Diego Cepero
Enviado el: miércoles, 07 de octubre de 2009 11:22 a.m.
Para: Maxi
Asunto: [dbms] Almacenamiento de BLOBs

 

Buen día,

 

            Les mando esta consulta en nombre de un compañero, que está con
problemas para suscribirse a las listas.

 

Tenemos que desarrollar una aplicación que debe almacenar unas 500.000
imágenes por mes, normalmente de entre 300 KB y 1 MB, aunque puede haber
algunas más grandes.        La aplicación hará uso intensivo de esas
imágenes almacenadas, tanto para visualizarlas como para editarlas
(rotarlas, recortarlas, etc.).

 

Esta aplicación podría usar SQL Server 2008, así que estamos analizando el
uso de VarBinary(Max) FILESTREAM para que se guarden las imágenes fuera de
la DB,  pero tenemos dudas de su uso y aún no tenemos referencias (buenas ni
malas) de esta nueva característica. Hemos tenido malas experiencias con el
file system, cuando se almacena un número muy grande de archivos en la misma
carpeta.   

 

También encontramos SQL Remote Blob Storage (RBS) . Según pudimos leer, los
fabricantes de hardware de almacenamiento masivo proveen una API para que se
pueda usar RBS mediante SQL Server. ¿Alguien tuvo experiencia en el uso de
esta tecnología con SQL Server?   

 

Obviamente, apreviamos cualquier recomendación de tecnología o de buenas
prácticas.

 

Muchas gracias, saludos.

 

 


 <http://www.ksoft.com.ar/> 

Diego Cepero
Desarrollo
[email protected]

Rioja 2747 PB (S2000OJK)
Rosario - Argentina
(0341) 440-3181 

 

 

 

 

<<image001.jpg>>

Responder a