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

Bedste måde at gemme en skrifttype i SQL Server-database

Der er et rigtig godt papir fra Microsoft Research kaldet To Blob or Not To Blob .

Deres konklusion efter et stort antal præstationstests og analyser er denne:

  • hvis dine billeder eller dokument typisk er under 256K i størrelse, er det mere effektivt at gemme dem i en database VARBINARY-kolonne

  • hvis dine billeder eller dokument typisk er over 1 MB i størrelse, er det mere effektivt at gemme dem i filsystemet (og med SQL Server 2008's FILESTREAM-attribut er de stadig under transaktionskontrol og en del af databasen)

  • i mellem disse to er det lidt af en toss-up afhængigt af din brug

Hvis du beslutter dig for at lægge dine billeder ind i en SQL Server-tabel, vil jeg stærkt anbefale at bruge en separat tabel til at gemme disse billeder - gem ikke medarbejderbilledet i medarbejdertabellen - gem dem i en separat tabel. På den måde kan medarbejdertabellen forblive slank og ond og meget effektiv, forudsat at du ikke altid behøver at vælge medarbejderbilledet også som en del af dine forespørgsler.

For filgrupper, tjek Filer og filgruppearkitektur for en intro. Grundlæggende ville du enten oprette din database med en separat filgruppe til store datastrukturer lige fra begyndelsen, eller tilføje en ekstra filgruppe senere. Lad os kalde det "LARGE_DATA".

Nu, når du har en ny tabel at oprette, som skal gemme VARCHAR(MAX) eller VARBINARY(MAX) kolonner, kan du angive denne filgruppe for de store data:

 CREATE TABLE dbo.YourTable
     (....... define the fields here ......)
     ON Data                   -- the basic "Data" filegroup for the regular data
     TEXTIMAGE_ON LARGE_DATA   -- the filegroup for large chunks of data

Tjek MSDN-introen om filgrupper, og leg med den!




  1. Summen af ​​en kolonne gruppe efter dato kolonne

  2. php mysql forespørgselskodningsproblem

  3. Konfig SQL*Plus for ikke at returnere andet end data

  4. Geolocation SQL-forespørgsel finder ikke den nøjagtige placering