SlideShare une entreprise Scribd logo
1  sur  15
O co chodzi z FILESTREAM?
87. spotkanie PLSSUG Warszawa, 07.05.2015.
O czym będzie?
Trzymać pliki w bazie, czy w systemie plików?
Czym jest FILESTREAM?
Jak go skonfigurować i używać?
Jak on wygląda w środku?
Jak używać z poziomu .NET
Gdzie łyżka dziegciu w tej beczce miodu?
I czym jest FILETABLE?
O mnie
Bartosz Ratajczyk
programista baz danych
(i aplikacji)
czasem też administrator
T-SQL, ETL, C#, PHP, JS, SAS 4GL
http://bartekr.net | b.ratajczyk@gmail.com
MCTS SQL Server 2008, MCSA SQL Server 2012
Pliki w bazie czy w systemie?
Dane w bazie Dane w systemie plików
Zalety:
 Spójność transakcyjna
 Wszystkie dane w jednym miejscu
 Jedno środowisko przechowywania i
odpytywania danych
Zalety:
 Oszczędność miejsca w bazie
 Rozmiar pliku ograniczony tylko przez
system operacyjny i miejsce na dysku
 Wydajne pobieranie danych
Wady:
 Duże obiekty potrzebują dużo pamięci
 Varbinary(max) przechowa najwyżej
2GB danych
 Aktualizacja może spowodować dużą
fragmentację bazy danych
 Duże pliki bazy danych
Wady:
 Separacja logiczna i fizyczna danych
 Baza danych nie wie o zmianach w
systemie plików
 Operacje ręczne na poziomie systemu
plików wpływają na spójność danych
 Wymagana dedykowana obsługa
plików
To może FILESTREAM?
ZALETY
 Spójność transakcyjna
 Wszystkie dane w jednym miejscu
 Jedno środowisko przechowywania i odpytywania danych
 Oszczędność miejsca w bazie
 Rozmiar pliku ograniczony tylko przez system operacyjny i
miejsce na dysku
 Wydajne pobieranie danych
 Zmniejsza rozmiar logu transakcyjnego
(o wadach będzie później)
Włączanie (1) - WINDOWS
Włączanie (2) - INSTANCJA
EXEC sp_configure 'filestream access level', <level>
T-SQL
FILEGROUP:
CONTAINS FILESTREAM
TABELA:
VARBINARY(MAX) FILESTREAM
UNIQUEIDENTIFIER [UNIQUE] NOT
NULL ROWGUIDCOL
Czy T-SQL jest wydajny?
Read performance of various BLOB sizes, źródło: FILESTREAM Storage in SQL Server 2008,
https://msdn.microsoft.com/en-us/library/hh461480.aspx
.NET
SqlConnection(„Integrated Security=true”)
PathName()
GET_FILESTREAM_TRANSACTION_CONTEXT()
Zawsze wymaga transakcji, nawet przy samym
odczycie
Zamknij strumień przed zatwierdzeniem
transakcji
FILETABLE
Bazuje na FILESTREAM
Uproszczona interakcja z systemem plików
Predefiniowana struktura tabeli
Dostęp z poziomu zasobu po włączeniu
NON_TRANSACTED_ACCESS
Kilka zaleceń
Stosuj FILESTREAM dla plików > 1MB
Nie nadużywaj T-SQL, raczej korzystaj z API
Użyj kolumny wyliczanej do przechowywania
rozmiaru danych
Przechowuj pliki FILESTREAM na oddzielnych
dyskach
Wyłącz generowanie nazw plików 8.3
No a te wady?
Database SNAPSHOT nie obsługuje grup
FILESTREAM
Database Mirroring nie obsługuje FILESTREAM
TDE nie obsługuje szyfrowania plików w
grupach FILESTREAM
Kompresja SQL Server nie dotyczy plików w
grupach FILESTREAM
Linki i źródła
Kalen Delaney „Microsoft SQL Server 2012
Internals”
Jacob Sebastian & Sven Aelterman „The Art of
SQL Server FILESTREAM”
https://technet.microsoft.com/en-
us/library/hh393573%28v=sql.110%29.aspx -
FILESTREAM (OLTP)---a Technical Reference
Guide for Designing Mission-Critical OLTP
Solutions
Co zapamiętać
• FILESTREAM włącza przechowywanie danych
w systemie plików, ale dostępnych z poziomu
bazy
• Ułatwia zarządzanie i obsługę plików z
poziomu T-SQL, ale zaleca korzystanie z API
• FILETABLE upraszcza obsługę plików w bazie
przez udostępnienie zasobu sieciowego

Contenu connexe

Tendances

Data Structure in C (Lab Programs)
Data Structure in C (Lab Programs)Data Structure in C (Lab Programs)
Data Structure in C (Lab Programs)Saket Pathak
 
Introduction to data structure
Introduction to data structure Introduction to data structure
Introduction to data structure NUPOORAWSARMOL
 
1.4 expression tree
1.4 expression tree  1.4 expression tree
1.4 expression tree Krish_ver2
 
Числові характеристики
Числові характеристикиЧислові характеристики
Числові характеристикиOksana Bryk
 
Stack application
Stack applicationStack application
Stack applicationStudent
 
6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
Data structures & algorithms lecture 3
Data structures & algorithms lecture 3Data structures & algorithms lecture 3
Data structures & algorithms lecture 3Poojith Chowdhary
 
Геометрія 8 кл.
Геометрія 8 кл.Геометрія 8 кл.
Геометрія 8 кл.school8zv
 
12. Heaps - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patil12. Heaps - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
Data Structure: TREES
Data Structure: TREESData Structure: TREES
Data Structure: TREESTABISH HAMID
 
Secret academy resumen La Joya de Alejandro Magno
Secret academy resumen La Joya de Alejandro MagnoSecret academy resumen La Joya de Alejandro Magno
Secret academy resumen La Joya de Alejandro Magnopolcabrera1234567890
 

Tendances (16)

Stack and queue
Stack and queueStack and queue
Stack and queue
 
Data Structure in C (Lab Programs)
Data Structure in C (Lab Programs)Data Structure in C (Lab Programs)
Data Structure in C (Lab Programs)
 
Introduction to data structure
Introduction to data structure Introduction to data structure
Introduction to data structure
 
1.4 expression tree
1.4 expression tree  1.4 expression tree
1.4 expression tree
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
 
Числові характеристики
Числові характеристикиЧислові характеристики
Числові характеристики
 
Stack application
Stack applicationStack application
Stack application
 
The Stack And Recursion
The Stack And RecursionThe Stack And Recursion
The Stack And Recursion
 
6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil
 
Data Structure (Stack)
Data Structure (Stack)Data Structure (Stack)
Data Structure (Stack)
 
Data structures & algorithms lecture 3
Data structures & algorithms lecture 3Data structures & algorithms lecture 3
Data structures & algorithms lecture 3
 
Геометрія 8 кл.
Геометрія 8 кл.Геометрія 8 кл.
Геометрія 8 кл.
 
12. Heaps - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patil12. Heaps - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patil
 
Data Structure: TREES
Data Structure: TREESData Structure: TREES
Data Structure: TREES
 
Balanced Tree (AVL Tree & Red-Black Tree)
Balanced Tree (AVL Tree & Red-Black Tree)Balanced Tree (AVL Tree & Red-Black Tree)
Balanced Tree (AVL Tree & Red-Black Tree)
 
Secret academy resumen La Joya de Alejandro Magno
Secret academy resumen La Joya de Alejandro MagnoSecret academy resumen La Joya de Alejandro Magno
Secret academy resumen La Joya de Alejandro Magno
 

En vedette (18)

Unit 7 Lesson D
Unit 7 Lesson DUnit 7 Lesson D
Unit 7 Lesson D
 
American Lit 10-27d
American Lit 10-27dAmerican Lit 10-27d
American Lit 10-27d
 
American Lit 201-06
American Lit 201-06American Lit 201-06
American Lit 201-06
 
Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?
 
American Lit 11-03
American Lit 11-03American Lit 11-03
American Lit 11-03
 
American Lit 201-02
American Lit 201-02American Lit 201-02
American Lit 201-02
 
American Lit 11-08
American Lit 11-08American Lit 11-08
American Lit 11-08
 
Co to te CTE?
Co to te CTE?Co to te CTE?
Co to te CTE?
 
American Lit 10/15
American Lit 10/15American Lit 10/15
American Lit 10/15
 
American Lit 201-11
American Lit 201-11American Lit 201-11
American Lit 201-11
 
Po co mi Temporal Tables?
Po co mi Temporal Tables?Po co mi Temporal Tables?
Po co mi Temporal Tables?
 
American Lit 10-15
American Lit 10-15American Lit 10-15
American Lit 10-15
 
American Lit 201-14b
American Lit 201-14bAmerican Lit 201-14b
American Lit 201-14b
 
My old friends
My old friendsMy old friends
My old friends
 
Marihuana divided the opinions of employers and unions
Marihuana divided the opinions of employers and unionsMarihuana divided the opinions of employers and unions
Marihuana divided the opinions of employers and unions
 
American Lit 2010-01
American Lit 2010-01American Lit 2010-01
American Lit 2010-01
 
Amer Lit 201 11-15
Amer Lit 201 11-15Amer Lit 201 11-15
Amer Lit 201 11-15
 
Amer Lit 201 11-29
Amer Lit 201 11-29Amer Lit 201 11-29
Amer Lit 201 11-29
 

Similaire à O co chodzi z FILESTREAM?

Sql Dla Administratora i Dewelopera
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Deweloperanexik
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics SystemArtur Wronski
 
Operacje minimalnie logowane
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowaneBartosz Ratajczyk
 
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danychProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danychAntoni Orfin
 
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...twitch.tv/katmpb
 
PHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użyciaPHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użyciaPHPCon Poland
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
 
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa ITSCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa ITRedge Technologies
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierciDivante
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
Backup Exec Podręcznik Użytkownika
Backup Exec Podręcznik UżytkownikaBackup Exec Podręcznik Użytkownika
Backup Exec Podręcznik UżytkownikaMarcin Orocz
 
Jak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkJak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkHighWheelSoftware
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl 3camp
 

Similaire à O co chodzi z FILESTREAM? (20)

Sql Dla Administratora i Dewelopera
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Dewelopera
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System
 
Operacje minimalnie logowane
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowane
 
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danychProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
 
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
 
PHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użyciaPHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użycia
 
Silverlight i PHP
Silverlight i PHPSilverlight i PHP
Silverlight i PHP
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
 
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa ITSCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
 
RSIM - Actina Solar
RSIM - Actina SolarRSIM - Actina Solar
RSIM - Actina Solar
 
Backup Exec Podręcznik Użytkownika
Backup Exec Podręcznik UżytkownikaBackup Exec Podręcznik Użytkownika
Backup Exec Podręcznik Użytkownika
 
Jak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkJak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFramework
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 

Plus de Bartosz Ratajczyk

SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiBartosz Ratajczyk
 
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastBartosz Ratajczyk
 
Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Bartosz Ratajczyk
 
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processBartosz Ratajczyk
 
Zautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISBartosz Ratajczyk
 
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534Bartosz Ratajczyk
 
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Bartosz Ratajczyk
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Bartosz Ratajczyk
 

Plus de Bartosz Ratajczyk (10)

SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
 
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
 
Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?
 
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
 
Zautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSIS
 
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
 
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
 
XML w SQL Server w praktyce
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyce
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
 
Alerty WMI
Alerty WMIAlerty WMI
Alerty WMI
 

O co chodzi z FILESTREAM?

  • 1. O co chodzi z FILESTREAM? 87. spotkanie PLSSUG Warszawa, 07.05.2015.
  • 2. O czym będzie? Trzymać pliki w bazie, czy w systemie plików? Czym jest FILESTREAM? Jak go skonfigurować i używać? Jak on wygląda w środku? Jak używać z poziomu .NET Gdzie łyżka dziegciu w tej beczce miodu? I czym jest FILETABLE?
  • 3. O mnie Bartosz Ratajczyk programista baz danych (i aplikacji) czasem też administrator T-SQL, ETL, C#, PHP, JS, SAS 4GL http://bartekr.net | b.ratajczyk@gmail.com MCTS SQL Server 2008, MCSA SQL Server 2012
  • 4. Pliki w bazie czy w systemie? Dane w bazie Dane w systemie plików Zalety:  Spójność transakcyjna  Wszystkie dane w jednym miejscu  Jedno środowisko przechowywania i odpytywania danych Zalety:  Oszczędność miejsca w bazie  Rozmiar pliku ograniczony tylko przez system operacyjny i miejsce na dysku  Wydajne pobieranie danych Wady:  Duże obiekty potrzebują dużo pamięci  Varbinary(max) przechowa najwyżej 2GB danych  Aktualizacja może spowodować dużą fragmentację bazy danych  Duże pliki bazy danych Wady:  Separacja logiczna i fizyczna danych  Baza danych nie wie o zmianach w systemie plików  Operacje ręczne na poziomie systemu plików wpływają na spójność danych  Wymagana dedykowana obsługa plików
  • 5. To może FILESTREAM? ZALETY  Spójność transakcyjna  Wszystkie dane w jednym miejscu  Jedno środowisko przechowywania i odpytywania danych  Oszczędność miejsca w bazie  Rozmiar pliku ograniczony tylko przez system operacyjny i miejsce na dysku  Wydajne pobieranie danych  Zmniejsza rozmiar logu transakcyjnego (o wadach będzie później)
  • 7. Włączanie (2) - INSTANCJA EXEC sp_configure 'filestream access level', <level>
  • 9. Czy T-SQL jest wydajny? Read performance of various BLOB sizes, źródło: FILESTREAM Storage in SQL Server 2008, https://msdn.microsoft.com/en-us/library/hh461480.aspx
  • 10. .NET SqlConnection(„Integrated Security=true”) PathName() GET_FILESTREAM_TRANSACTION_CONTEXT() Zawsze wymaga transakcji, nawet przy samym odczycie Zamknij strumień przed zatwierdzeniem transakcji
  • 11. FILETABLE Bazuje na FILESTREAM Uproszczona interakcja z systemem plików Predefiniowana struktura tabeli Dostęp z poziomu zasobu po włączeniu NON_TRANSACTED_ACCESS
  • 12. Kilka zaleceń Stosuj FILESTREAM dla plików > 1MB Nie nadużywaj T-SQL, raczej korzystaj z API Użyj kolumny wyliczanej do przechowywania rozmiaru danych Przechowuj pliki FILESTREAM na oddzielnych dyskach Wyłącz generowanie nazw plików 8.3
  • 13. No a te wady? Database SNAPSHOT nie obsługuje grup FILESTREAM Database Mirroring nie obsługuje FILESTREAM TDE nie obsługuje szyfrowania plików w grupach FILESTREAM Kompresja SQL Server nie dotyczy plików w grupach FILESTREAM
  • 14. Linki i źródła Kalen Delaney „Microsoft SQL Server 2012 Internals” Jacob Sebastian & Sven Aelterman „The Art of SQL Server FILESTREAM” https://technet.microsoft.com/en- us/library/hh393573%28v=sql.110%29.aspx - FILESTREAM (OLTP)---a Technical Reference Guide for Designing Mission-Critical OLTP Solutions
  • 15. Co zapamiętać • FILESTREAM włącza przechowywanie danych w systemie plików, ale dostępnych z poziomu bazy • Ułatwia zarządzanie i obsługę plików z poziomu T-SQL, ale zaleca korzystanie z API • FILETABLE upraszcza obsługę plików w bazie przez udostępnienie zasobu sieciowego