O co chodzi z FILESTREAM?

Bartosz Ratajczyk
Bartosz RatajczykDatabase developer
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
1 of 15

Recommended

Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji by
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiAntoni Orfin
1.8K views22 slides
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i... by
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
6.9K views53 slides
Backup Exec Podręcznik Użytkownika by
Backup Exec Podręcznik UżytkownikaBackup Exec Podręcznik Użytkownika
Backup Exec Podręcznik UżytkownikaMarcin Orocz
98 views8 slides
Unit 7 Lesson D by
Unit 7 Lesson DUnit 7 Lesson D
Unit 7 Lesson Dmairaguevara
82 views5 slides
American Lit 10-27d by
American Lit 10-27dAmerican Lit 10-27d
American Lit 10-27dMichael Simpson
182 views8 slides

More Related Content

Viewers also liked

American Lit 11-03 by
American Lit 11-03American Lit 11-03
American Lit 11-03Michael Simpson
231 views6 slides
American Lit 201-02 by
American Lit 201-02American Lit 201-02
American Lit 201-02Michael Simpson
255 views14 slides
American Lit 11-08 by
American Lit 11-08American Lit 11-08
American Lit 11-08Michael Simpson
229 views4 slides
Co to te CTE? by
Co to te CTE?Co to te CTE?
Co to te CTE?Bartosz Ratajczyk
512 views30 slides
American Lit 10/15 by
American Lit 10/15American Lit 10/15
American Lit 10/15Michael Simpson
236 views8 slides
American Lit 201-11 by
American Lit 201-11American Lit 201-11
American Lit 201-11Michael Simpson
158 views4 slides

Similar to O co chodzi z FILESTREAM?

Sql Dla Administratora i Dewelopera by
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Deweloperanexik
328 views17 slides
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v... by
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
2.1K views110 slides
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać by
"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
1.2K views61 slides
[#2] architektura - IBM Integrated Analytics System by
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics SystemArtur Wronski
161 views24 slides
Operacje minimalnie logowane by
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowaneBartosz Ratajczyk
327 views17 slides
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych by
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
989 views20 slides

Similar to O co chodzi z FILESTREAM?(20)

Sql Dla Administratora i Dewelopera by nexik
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Dewelopera
nexik328 views
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v... by Tomasz Kopacz
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 Kopacz2.1K views
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać by Bartosz Ratajczyk
"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 Ratajczyk1.2K views
[#2] architektura - IBM Integrated Analytics System by Artur Wronski
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System
Artur Wronski161 views
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych by Antoni Orfin
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 Orfin989 views
PHP i memcached, zaawansowane przypadki użycia by PHPCon Poland
PHP i memcached, zaawansowane przypadki użyciaPHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użycia
PHPCon Poland4.4K views
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych? by 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?
PHPCon Poland1.4K views
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT by Redge Technologies
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 Technologies573 views
Pocałunek śmierci by Divante
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
Divante640 views
Skalowalność Magento - MMPL13 by Divante
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
Divante3.1K views
Jak nie narobić sobie problemów korzystając z EntityFramework by HighWheelSoftware
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
HighWheelSoftware152 views
IT od kuchni w Nokaut.pl by 3camp
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
3camp1.4K views
Struktura i własności systemu zarządzania treścią Drupal by Grzegorz Bartman
Struktura i własności systemu zarządzania treścią DrupalStruktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią Drupal
Grzegorz Bartman3.6K views
Logi dla dużych firm_Tameshi na AWS Community Day .pdf by Tameshi Team
Logi dla dużych firm_Tameshi na AWS Community Day .pdfLogi dla dużych firm_Tameshi na AWS Community Day .pdf
Logi dla dużych firm_Tameshi na AWS Community Day .pdf
Tameshi Team16 views

More from Bartosz Ratajczyk

SQL Server + docker - pierwsze kroki by
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiBartosz Ratajczyk
364 views21 slides
OLE DB - kiedy FastLoad nie jest takie fast by
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastBartosz Ratajczyk
125 views10 slides
Jak działa rekurencyjne CTE? by
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Bartosz Ratajczyk
229 views29 slides
SqlSaturday Denmark 2017 - Automate your SSIS deployment process by
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processBartosz Ratajczyk
470 views39 slides
Zautomatyzuj swój proces wdrażania projektów SSIS by
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
231 views39 slides
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534 by
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534Bartosz Ratajczyk
172 views24 slides

More from Bartosz Ratajczyk(10)

OLE DB - kiedy FastLoad nie jest takie fast by Bartosz Ratajczyk
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
Bartosz Ratajczyk125 views
SqlSaturday Denmark 2017 - Automate your SSIS deployment process by Bartosz Ratajczyk
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
Bartosz Ratajczyk470 views
Zautomatyzuj swój proces wdrażania projektów SSIS by Bartosz Ratajczyk
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 Ratajczyk231 views
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534 by Bartosz Ratajczyk
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Bartosz Ratajczyk172 views
Szkolenia i certyfikacjesqlserver2016_plssug99 by Bartosz Ratajczyk
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
Bartosz Ratajczyk282 views
Jak szybko przetwarzasz hurtowe ilości XML? by Bartosz Ratajczyk
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
Bartosz Ratajczyk321 views

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