Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Съхранение на файлове в SQL Server

Има наистина добър документ от Microsoft Research, наречен To Blob or Not To Blob.

Заключението им след голям брой тестове и анализи е следното:

  • ако вашите снимки или документ обикновено са с размер под 256K, съхраняването им в колона VARBINARY на база данни е по-ефективно

  • ако вашите снимки или документ обикновено са с размер над 1 MB, съхраняването им във файловата система е по-ефективно (и с атрибута FILESTREAM на SQL Server 2008, те все още са под транзакционен контрол и са част от базата данни)

  • между тези две, това е малко хвърляне в зависимост от употребата ви

Ако решите да поставите вашите снимки в таблица на SQL Server, силно бих препоръчал да използвате отделна таблица за съхранение на тези снимки - не съхранявайте снимката на служителя в таблицата на служителите - съхранявайте ги в отделна таблица. По този начин таблицата на служителите може да остане стройна, злобна и много ефективна, като приемем, че не винаги е необходимо да избирате и снимката на служителя като част от вашите заявки.

За файлови групи вижте Файлове и Архитектура на файлови групи за въведение. По принцип или ще създадете вашата база данни с отделна файлова група за големи структури от данни от самото начало, или ще добавите допълнителна файлова група по-късно. Нека го наречем "LARGE_DATA".

Сега, когато имате нова таблица за създаване, която трябва да съхранява колони VARCHAR(MAX) или VARBINARY(MAX), можете да посочите тази файлова група за големите данни:

 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

Вижте въведението на MSDN за файловите групи и си поиграйте с него!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL производителност:WHERE срещу WHERE(ROW_NUMBER)

  2. Преобразувайте „smalldatetime“ в „date“ в SQL Server (T-SQL примери)

  3. Какво представляват ограниченията на базата данни?

  4. Как мога да вмъкна данни от двоичен файл в двоично SQL поле с помощта на прост оператор за вмъкване?

  5. Как да конвертирате цяло число в десетично в SQL Server