sql >> Databasteknik >  >> RDS >> Sqlserver

Använder SQL Server som bildarkiv

10 Gb är inte en jättestor mängd data, så du kan förmodligen använda databasen för att lagra den och har inga stora problem, men det är naturligtvis bäst prestandamässigt att använda filsystemet, och säkerhetshanteringsmässigt är det bättre att använda DB:n (säkerhetskopiering och konsekvens).

Lyckligtvis låter Sql Server 2008 dig ha din tårta och äta den också, med:

Attributet FILESTREAM

I SQL Server 2008 kan du tillämpa FILESTREAM-attributet på en varbinär kolumn, och SQL Server lagrar sedan data för den kolumnen i det lokala NTFS-filsystemet. Att lagra data i filsystemet ger två viktiga fördelar:

  • Prestandan matchar filsystemets strömningsprestanda.
  • BLOB-storleken begränsas endast av filsystemets volymstorlek.

Kolumnen kan dock hanteras precis som alla andra BLOB-kolumner i SQL Server, så administratörer kan använda SQL Servers hanterings- och säkerhetsfunktioner för att integrera BLOB-datahantering med resten av data i relationsdatabasen – utan att behöva hantera filsystemdata separat.

Att definiera data som en FILESTREAM-kolumn i SQL Server säkerställer också överensstämmelse på datanivå mellan relationsdata i databasen och ostrukturerad data som fysiskt lagras i filsystemet. En FILESTREAM-kolumn beter sig exakt på samma sätt som en BLOB-kolumn, vilket innebär full integration av underhållsoperationer som säkerhetskopiering och återställning, fullständig integration med SQL Server-säkerhetsmodellen och fullständigt transaktionsstöd.

Applikationsutvecklare kan arbeta med FILESTREAM-data genom en av två programmeringsmodeller; de kan använda Transact-SQL för att komma åt och manipulera data precis som vanliga BLOB-kolumner, eller så kan de använda Win32-strömnings-API:erna med Transact-SQL transaktionssemantik för att säkerställa konsistens, vilket innebär att de kan använda standard Win32 läs/skrivanrop till FILESTREAM BLOBs som de skulle göra om de interagerar med filer i filsystemet.

I SQL Server 2008 kan FILESTREAM-kolumner bara lagra data på lokala diskvolymer, och vissa funktioner som transparent kryptering och tabellvärdeparametrar stöds inte för FILESTREAM-kolumner. Dessutom kan du inte använda tabeller som innehåller FILESTREAM-kolumner i databasögonblicksbilder eller databasspeglingssessioner, även om loggsändning stöds.



  1. Förhindra att spara ändringar som kräver att tabellen återskapas negativa effekter

  2. Framgångsrika MySQL/MariaDB-strategier för säkerhetskopiering och återställning

  3. Hur viktig är ordningen på kolumner i index?

  4. Hur man tolkar JSON i postgresql