Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Używanie SQL Server jako magazynu obrazów

10 Gb to niezbyt duża ilość danych, więc prawdopodobnie możesz użyć bazy danych do jej przechowywania i nie będziesz mieć większych problemów, ale oczywiście najlepiej jest korzystać z systemu plików pod kątem wydajności, a z punktu widzenia zarządzania bezpieczeństwem lepiej jest użyć bazy danych (kopie zapasowe i spójność).

Na szczęście Sql Server 2008 pozwala Ci mieć ciastko i je zjeść dzięki:

Atrybut FILESTREAM

W SQL Server 2008 można zastosować atrybut FILESTREAM do kolumny varbinary, a następnie SQL Server przechowuje dane dla tej kolumny w lokalnym systemie plików NTFS. Przechowywanie danych w systemie plików przynosi dwie kluczowe korzyści:

  • Wydajność odpowiada wydajności przesyłania strumieniowego systemu plików.
  • Rozmiar BLOB jest ograniczony tylko przez rozmiar woluminu systemu plików.

Kolumną można jednak zarządzać tak jak każdą inną kolumną BLOB w programie SQL Server, dzięki czemu administratorzy mogą korzystać z funkcji zarządzania i zabezpieczeń programu SQL Server, aby zintegrować zarządzanie danymi BLOB z resztą danych w relacyjnej bazie danych — bez konieczności zarządzania dane systemu plików oddzielnie.

Zdefiniowanie danych jako kolumny FILESTREAM w programie SQL Server zapewnia również spójność na poziomie danych między danymi relacyjnymi w bazie danych a danymi bez struktury, które są fizycznie przechowywane w systemie plików. Kolumna FILESTREAM zachowuje się dokładnie tak samo jak kolumna BLOB, co oznacza pełną integrację operacji konserwacyjnych, takich jak tworzenie kopii zapasowych i przywracanie, pełną integrację z modelem bezpieczeństwa SQL Server oraz pełną obsługę transakcji.

Deweloperzy aplikacji mogą pracować z danymi FILESTREAM za pomocą jednego z dwóch modeli programowania; mogą używać Transact-SQL do uzyskiwania dostępu do danych i manipulowania nimi, tak jak w przypadku standardowych kolumn BLOB, lub mogą używać interfejsów API przesyłania strumieniowego Win32 z semantyką transakcyjną Transact-SQL, aby zapewnić spójność, co oznacza, że ​​mogą używać standardowych wywołań odczytu/zapisu Win32 do FILESTREAM BLOBy, tak jak w przypadku interakcji z plikami w systemie plików.

W SQL Server 2008 kolumny FILESTREAM mogą przechowywać dane tylko na woluminach dysków lokalnych, a niektóre funkcje, takie jak przezroczyste szyfrowanie i parametry z wartościami przechowywanymi w tabeli, nie są obsługiwane dla kolumn FILESTREAM. Ponadto nie można używać tabel zawierających kolumny FILESTREAM w migawkach bazy danych lub sesjach dublowania bazy danych, chociaż przesyłanie dzienników jest obsługiwane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Miejsce docelowe serwera SQL a miejsce docelowe OLE DB

  2. Jak ustawić opcję maxrecursion dla CTE wewnątrz funkcji Table-Valued-Function?

  3. Jak używać Top z powiązaniami w SQL Server — samouczek SQL Server / TSQL część 114

  4. Dowiedz się, czy obiekt jest funkcją wartościującą tabelę w SQL Server za pomocą OBJECTPROPERTY()

  5. Zautomatyzuj przywracanie testowe bazy danych w SQL Server