sql >> Databáze >  >> RDS >> Sqlserver

Ukládání souborů na SQL Server

Existuje opravdu dobrý dokument od Microsoft Research s názvem To Blob or Not To Blob.

Jejich závěr po velkém počtu výkonnostních testů a analýz je tento:

  • pokud mají vaše obrázky nebo dokument obvykle velikost menší než 256 kB, je jejich uložení do sloupce VARBINARY v databázi efektivnější

  • pokud jsou vaše obrázky nebo dokument obvykle větší než 1 MB, jejich ukládání do souborového systému je efektivnější (a s atributem FILESTREAM SQL Server 2008 jsou stále pod transakční kontrolou a jsou součástí databáze)

  • mezi těmito dvěma je to trochu házení v závislosti na vašem použití

Pokud se rozhodnete umístit své obrázky do tabulky SQL Serveru, důrazně doporučuji použít samostatnou tabulku pro ukládání těchto obrázků - neukládejte fotografii zaměstnance do tabulky zaměstnanců - mějte je v samostatné tabulce. Tímto způsobem může tabulka Zaměstnanec zůstat štíhlá, průměrná a velmi efektivní, za předpokladu, že nemusíte vždy v rámci svých dotazů vybírat i fotografii zaměstnance.

Pokud jde o skupiny souborů, podívejte se na úvod do Files and Filegroup Architecture. V zásadě byste buď hned od začátku vytvořili svou databázi se samostatnou skupinou souborů pro velké datové struktury, nebo přidali další skupinu souborů později. Říkejme tomu „LARGE_DATA“.

Nyní, kdykoli chcete vytvořit novou tabulku, která potřebuje uložit sloupce VARCHAR(MAX) nebo VARBINARY(MAX), můžete zadat tuto skupinu souborů pro velká 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

Podívejte se na úvod MSDN o souborových skupinách a pohrajte si s ním!



  1. PostgreSQL:Dotaz nemá žádný cíl pro výsledná data

  2. Jak zálohovat funkce pouze v Postgresu

  3. Nelze přidat nebo aktualizovat podřízený řádek:omezení cizího klíče se nezdaří

  4. instalace postgres selhala inicializace databázového clusteru ( Postgresql verze 9.4.4 )