sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2008 FILESTREAM ydeevne

Hvis 100 brugere anmodede om 100 100 Mb-filer (gemt via FILESTREAM) inden for et 10 sekunders vindue, ville SQL Server 2008-ydeevnen gå langsommere til en gennemgang?

På hvilken slags server?? Hvilken slags hardware til at betjene disse filer? Hvilken slags diske, netværk osv.?? Så mange spørgsmål......

Der er et rigtig godt blogindlæg af Paul Randal på SQL Server 2008:FILESTREAM-ydeevne - tjek det ud. Der er også en 25-siders hvidbog om FILESTREAM tilgængelig - dækker også nogle tip til justering af ydeevne.

Men tjek også Microsoft Research TechReport To BLOB or Not To BLOB .

Det er en meget dyb og meget velbaseret artikel, der sætter alle disse spørgsmål igennem deres trin.

Deres konklusion:

Så ud fra det at dømme - hvis dine blobs typisk er mindre end 1 MB, skal du bare gemme dem som en VARBINARY(MAX) i databasen. Hvis de typisk er større, så er det kun FILESTREAM-funktionen.

Jeg ville ikke bekymre mig så meget om ydeevne snarere end andre fordele ved FILESTREAM over "uadministreret" lagring i en NTFS-filmappe:lagring af filer uden for databasen uden FILESTREAM, du har ingen kontrol over dem:

  • ingen adgangskontrol leveret af databasen
  • filerne er ikke en del af din SQL Server-sikkerhedskopi
  • filerne håndteres ikke transaktionelt, f.eks. du kan ende med "zombie"-filer, som der ikke længere refereres til fra databasen, eller "skelet"-indgange i databasen uden den tilsvarende fil på disken

Alene disse funktioner gør det absolut umagen værd at bruge FILESTREAM.



  1. Sådan tilføjer du et rækkenummer i en gruppe i min forespørgsel

  2. Gem og indekser YAML med PostgreSQL, med Javascript lib eller genbrugelige funktioner?

  3. Hvilken datatype for breddegrad og længdegrad?

  4. Hvordan kan jeg bygge en Android-app med lokal MySQL-database?