SlideShare a Scribd company logo
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

More Related Content

Viewers also liked

Unit 7 Lesson D
Unit 7 Lesson DUnit 7 Lesson D
Unit 7 Lesson D
mairaguevara
 
American Lit 10-27d
American Lit 10-27dAmerican Lit 10-27d
American Lit 10-27d
Michael Simpson
 
American Lit 201-06
American Lit 201-06American Lit 201-06
American Lit 201-06
Michael Simpson
 
Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?
Bartosz Ratajczyk
 
American Lit 11-03
American Lit 11-03American Lit 11-03
American Lit 11-03
Michael Simpson
 
American Lit 201-02
American Lit 201-02American Lit 201-02
American Lit 201-02
Michael Simpson
 
American Lit 11-08
American Lit 11-08American Lit 11-08
American Lit 11-08
Michael Simpson
 
Co to te CTE?
Co to te CTE?Co to te CTE?
Co to te CTE?
Bartosz Ratajczyk
 
American Lit 10/15
American Lit 10/15American Lit 10/15
American Lit 10/15
Michael Simpson
 
American Lit 201-11
American Lit 201-11American Lit 201-11
American Lit 201-11
Michael Simpson
 
Po co mi Temporal Tables?
Po co mi Temporal Tables?Po co mi Temporal Tables?
Po co mi Temporal Tables?
Bartosz Ratajczyk
 
American Lit 10-15
American Lit 10-15American Lit 10-15
American Lit 10-15
Michael Simpson
 
American Lit 201-14b
American Lit 201-14bAmerican Lit 201-14b
American Lit 201-14b
Michael Simpson
 
My old friends
My old friendsMy old friends
My old friends
mairaguevara
 
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 unionsmairaguevara
 
American Lit 2010-01
American Lit 2010-01American Lit 2010-01
American Lit 2010-01
Michael Simpson
 
Amer Lit 201 11-15
Amer Lit 201 11-15Amer Lit 201 11-15
Amer Lit 201 11-15
Michael Simpson
 
Amer Lit 201 11-29
Amer Lit 201 11-29Amer Lit 201 11-29
Amer Lit 201 11-29
Michael Simpson
 

Viewers also liked (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
 

Similar to O co chodzi z FILESTREAM?

Sql Dla Administratora i Dewelopera
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Dewelopera
nexik
 
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 System
Artur Wronski
 
Operacje minimalnie logowane
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowane
Bartosz 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 danych
Antoni 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życia
PHPCon 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 IT
Redge 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
 
Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
Bartosz Ratajczyk
 
Backup Exec Podręcznik Użytkownika
Backup Exec Podręcznik UżytkownikaBackup Exec Podręcznik Użytkownika
Backup Exec Podręcznik Użytkownika
Marcin 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 EntityFramework
HighWheelSoftware
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
Przemyslaw Wroblewski
 
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
 

Similar to 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
 

More from Bartosz Ratajczyk

SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
Bartosz 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 fast
Bartosz 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 process
Bartosz 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 SSIS
Bartosz Ratajczyk
 
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Bartosz Ratajczyk
 
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
Bartosz Ratajczyk
 
XML w SQL Server w praktyce
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyce
Bartosz 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
 
Alerty WMI
Alerty WMIAlerty WMI
Alerty WMI
Bartosz Ratajczyk
 

More from 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