sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008 FILESTREAM-prestaties

Als 100 gebruikers binnen 10 seconden 100 bestanden van 100 MB zouden aanvragen (opgeslagen via FILESTREAM), zouden de prestaties van SQL Server 2008 dan langzamer worden dan crawlen?

Op wat voor soort server?? Wat voor soort hardware om die bestanden te dienen? Wat voor soort schijven, netwerk enz.?? Zoveel vragen.......

Er is een heel goede blogpost van Paul Randal op SQL Server 2008:FILESTREAM-prestaties - bekijken. Er is ook een 25 pagina's tellende whitepaper over FILESTREAM beschikbaar - bevat ook enkele tips voor het afstemmen van prestaties.

Maar bekijk ook het Microsoft Research TechReport To BLOB or Not To BLOB .

Het is een zeer diepgaand en zeer goed gebaseerd artikel dat al die vragen op de proef stelt.

Hun conclusie:

Dus afgaande op dat - als uw blobs doorgaans kleiner zijn dan 1 MB, slaat u ze gewoon op als een VARBINARY (MAX) in de database. Als ze doorgaans groter zijn, dan alleen de FILESTREAM-functie.

Ik zou me niet zozeer zorgen maken over de prestaties in plaats van over andere voordelen van FILESTREAM ten opzichte van "onbeheerde" opslag in een NTFS-bestandsmap:bestanden opslaan buiten de database zonder FILESTREAM, je hebt er geen controle over:

  • geen toegangscontrole door de database
  • de bestanden maken geen deel uit van uw SQL Server-back-up
  • de bestanden worden niet transactioneel behandeld, b.v. je zou kunnen eindigen met "zombie"-bestanden waarnaar niet meer vanuit de database wordt verwezen, of "skelet"-items in de database zonder het bijbehorende bestand op schijf

Alleen al deze functies maken het absoluut de moeite waard om FILESTREAM te gebruiken.



  1. mysql opgeslagen procedure die zichzelf recursief aanroept

  2. Krullende accolades in T-SQL

  3. Een ander PostgreSQL-commitfest beheren

  4. Installeer MySQL op Ubuntu 14.04