niedziela, 14 lipca 2013

Pliki danych, Filestream - MSSQL 2008 Server cz.2

W pierwszej części, (która była dość dawno) opisałem najważniejsze rzeczy dotyczące instalacji, co prawda na MS Win XP, ale można w ten sam sposób zainstalować na MS 2008 Server. Teraz chciałbym kontynuować wpisy dotyczące MS SQL 2008 ze względu na moją pracę, w której korzystamy z MSSQL 2008:)

Na początek kilka definicji, bez których raczej nie ruszymy:

1) Pliki danych - jeden z dwóch głównych rodzai plików wykorzystywanych w MSSQL. Przechowują długoterminowe dane, czyli tak naprawdę wszystkie zatwierdzone informacje.

2) Grupa plików - mapuje logiczną strukturę danych na pliki, które możemy archiwizować oraz odzyskiwać.


3) Dziennik transakcji - przechowuje informacje na temat wszystkich operacji przeprowadzonych na bazie. W momencie zatwierdzenia transakcji dane lądują na stałe w pliku danych.

Dane w bazie znajdują się w plikach o rozszerzeniach:

1) .mdf  lub .ndf - pliki danych,
2) .ldf - pliki dziennika transakcji

W wersji 2008 bazy w większym stopniu wykorzystaniu bazę tempdb, to w niej umieszczone są dane tymczasowe: tabele robocze wykorzystywane do sortowania danych lub obsługujące kursory. Jako że tempdb jest bardziej obciążona warto przenieść ją na inną partycję i podpięcie do silnika MSSQL 2008.

Nowością w MSSQL 2008 Server jest tzw. Filestream,  zbiór plików niestrukturalnych, czyli takich jak pliki tekstowe, zdjęcia itd.
W serwerze SQL 2008 duże obiekty binarne mogą być przechowywane w tradycyjny sposób, jako dane typu varbinary(max) lub obiekty typu varbinary(max)FILESTREAM, co spowoduje zapisanie ich w systemie plików NTFS. Generalnie, o użyciu atrybutu FILESTREAM decyduje ilość danych, które należy przechować oraz sposób, w jaki będą używane. FILESTREAM powinien być zatem użyty w trzech przypadkach, gdy:

-Przechowywany obiekt ma (średnio) powyżej 1MB,
-Istotny jest szybki odczyt danych,
-Środkowa warstwa aplikacji klienckiej, a więc warstwa logiki aplikacji w modelu trójwarstwowym, korzysta z dużych obiektów binarnych.

Poniżej opis w jaki sposób przygotować:

Logujemy się do instancji bazy danych, następnie wybieramy Properties:




Domyślnie Filestream jest wyłączony, możemy go włączyć tak aby móc korzystać z niego przy pomocy T-SQL lub przy pomocy aplikacji API Win32:



Na koniec musimy utworzyć nową bazę danych zawierającą możliwość wykorzystania  Filestream:

CREATE DATABASE Filestream ON  PRIMARY 
( NAME = N'Filestream_Data', FILENAME = N'd:\test\Filestream.mdf' , 
 SIZE = 8MB , MAXSIZE = UNLIMITED, FILEGROWTH = 16MB ), 
 FILEGROUP Filestream1 
( NAME = N'Filestream_Data2', FILENAME = N'd:\test\Filestream.ndf' , 
    SIZE = 8MB , MAXSIZE = UNLIMITED, FILEGROWTH = 16MB ),
 FILEGROUP Documents CONTAINS FILESTREAM  DEFAULT 
( NAME = N'FilestreamDocuments', FILENAME = N'd:\test\FilestreamDocuments' )
 LOG ON 
( NAME = N'Filestream_Log', FILENAME = N'd:\test\Filestream.ldf' , 
    SIZE = 8MB , MAXSIZE = 2048GB , FILEGROWTH = 16MB )

GO

Ustawmy utworzony przez nas Filestream jako domyślne źródło danych:

ALTER DATABASE Filestream
MODIFY FILEGROUP Filestream1
DEFAULT

GO

W ten sposób możemy przechowywać zarówno "normalne dane": finansowe, tekstowe, ale również zdjęcia oraz całe pliki.




Brak komentarzy:

Prześlij komentarz