sql >> Databasteknik >  >> RDS >> Sqlserver

Prestanda för SQL Server 2008 FILESTREAM

Om 100 användare begärde 100 100 Mb-filer (lagrade via FILESTREAM) inom ett 10 sekunders fönster, skulle SQL Server 2008-prestanda bli långsammare till en genomsökning?

På vilken typ av server?? Vilken typ av hårdvara för att betjäna dessa filer? Vilken typ av diskar, nätverk etc.?? Så många frågor......

Det finns ett riktigt bra blogginlägg av Paul Randal på SQL Server 2008:FILESTREAM-prestanda - Kolla in det. Det finns också en 25-sidig whitepaper på FILESTREAM tillgänglig - täcker även några tips om prestandajustering.

Men kolla också in Microsoft Research TechReport To BLOB or Not To BLOB .

Det är en mycket djupgående och mycket välbaserad artikel som sätter alla dessa frågor genom deras takt.

Deras slutsats:

Så att döma av det - om dina blobbar vanligtvis är mindre än 1 MB, lagra dem bara som en VARBINARY(MAX) i databasen. Om de vanligtvis är större, är det bara FILESTREAM-funktionen.

Jag skulle inte oroa mig så mycket om prestanda snarare än andra fördelar med FILESTREAM över "ohanterad" lagring i en NTFS-filmapp:lagrar filer utanför databasen utan FILESTREAM, du har ingen kontroll över dem:

  • ingen åtkomstkontroll tillhandahållen av databasen
  • filerna är inte en del av din SQL Server-säkerhetskopia
  • filerna hanteras inte transaktionsmässigt, t.ex. du kan sluta med "zombie"-filer som inte längre refereras från databasen, eller "skelett"-poster i databasen utan motsvarande fil på disken

Bara dessa funktioner gör det absolut värt att använda FILESTREAM.



  1. Atomic UPDATE för att öka heltal i Postgresql

  2. Öka automatiskt efter borttagning i MySQL

  3. Hur skapar jag en tillfällig tabell från en typ?

  4. Ta bort dubbletter av rader (baserat på värden från flera kolumner) från SQL-tabellen