sql >> Databasteknik >  >> RDS >> Sqlserver

Bästa sättet att spara ett teckensnitt i SQL Server-databas

Det finns en riktigt bra artikel från Microsoft Research som heter To Blob or Not To Blob .

Deras slutsats efter ett stort antal prestandatester och analyser är denna:

  • om dina bilder eller dokument vanligtvis är mindre än 256K är det mer effektivt att lagra dem i en databas VARBINARY kolumn

  • om dina bilder eller dokument vanligtvis är över 1 MB i storlek, är lagringen av dem i filsystemet effektivare (och med SQL Server 2008:s FILESTREAM-attribut är de fortfarande under transaktionskontroll och en del av databasen)

  • mellan dessa två, det är lite av en toss-up beroende på din användning

Om du bestämmer dig för att lägga in dina bilder i en SQL Server-tabell, rekommenderar jag starkt att du använder en separat tabell för att lagra dessa bilder - lagra inte medarbetarfotot i personaltabellen - håll dem i en separat tabell. På så sätt kan tabellen Employee förbli smal och elak och mycket effektiv, förutsatt att du inte alltid behöver välja anställds foto också, som en del av dina frågor.

För filgrupper, kolla in Filer och filgruppsarkitektur för ett intro. I grund och botten skulle du antingen skapa din databas med en separat filgrupp för stora datastrukturer redan från början, eller lägga till en ytterligare filgrupp senare. Låt oss kalla det "LARGE_DATA".

När du nu har en ny tabell att skapa som behöver lagra kolumner VARCHAR(MAX) eller VARBINARY(MAX), kan du ange denna filgrupp för stora 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

Kolla in MSDN-introt om filgrupper och lek med det!




  1. Mysqli hämta array n:te raden

  2. Metaprogrammering oracle sql select-sats

  3. MySQL ATAN() Funktion – Returnera bågtangenten för ett värde (eller värden)

  4. Iterera genom rader i SQL Server 2008