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

Съхраняване на изображения в SQL Server?

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

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

  • ако вашите снимки или документ обикновено са с размер под 256KB, съхраняването им в колона 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. Лоша практика ли е NOLOCK (Sql Server намек)?

  2. Преобразуване на дата и култура:Разлика между DATE и DATETIME

  3. Поправете „датата е несъвместима с int“ в SQL Server при добавяне към или изваждане от дата

  4. Функция за изчисляване на медиана в SQL Server

  5. CURRENT_TIMESTAMP Примери в SQL Server (T-SQL)