Pokud by 100 uživatelů požadovalo 100 100Mb souborů (uložených prostřednictvím FILESTREAM) během 10 sekundového okna, zpomalil by se výkon SQL Serveru 2008 na procházení?
Na jakém serveru?? Jakým hardwarem tyto soubory obsluhovat? Jaké disky, sítě atd.?? Tolik otázek.......
Na webu SQL Server 2008:Výkon FILESTREAM - Koukni na to. Na FILESTREAM je také 25stránkový dokument k dispozici – zahrnuje také některé tipy pro ladění výkonu.
Ale podívejte se také na Microsoft Research TechReport To BLOB or Not To BLOB .
Je to velmi hluboký a velmi dobře podložený článek, který dal všechny ty otázky přes jejich kroky.
Jejich závěr:
Takže soudě z toho - pokud jsou vaše bloby obvykle menší než 1 MB, uložte je do databáze jako VARBINARY (MAX). Pokud jsou obvykle větší, pak pouze funkce FILESTREAM.
Nedělal bych si tolik starostí o výkon než o jiné výhody FILESTREAM oproti „nespravovanému“ ukládání ve složce souborů NTFS:ukládání souborů mimo databázi bez FILESTREAM, nemáte nad nimi žádnou kontrolu:
- databáze neposkytuje žádné řízení přístupu
- soubory nejsou součástí zálohy SQL Server
- se soubory se nezpracovává transakčně, např. mohli byste skončit se „zombie“ soubory, na které se již z databáze neodkazuje, nebo „kostlivými“ položkami v databázi bez odpovídajícího souboru na disku
Už jen kvůli těmto funkcím se absolutně vyplatí používat FILESTREAM.