Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

O co chodzi z FILESTREAM?

550 views

Published on

Prezentacja nt. FILESTREAM/FILETABLE na 87. spotkaniu PLSSUG

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

O co chodzi z FILESTREAM?

  1. 1. O co chodzi z FILESTREAM? 87. spotkanie PLSSUG Warszawa, 07.05.2015.
  2. 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. 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. 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. 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)
  6. 6. Włączanie (1) - WINDOWS
  7. 7. Włączanie (2) - INSTANCJA EXEC sp_configure 'filestream access level', <level>
  8. 8. T-SQL FILEGROUP: CONTAINS FILESTREAM TABELA: VARBINARY(MAX) FILESTREAM UNIQUEIDENTIFIER [UNIQUE] NOT NULL ROWGUIDCOL
  9. 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. 10. .NET SqlConnection(„Integrated Security=true”) PathName() GET_FILESTREAM_TRANSACTION_CONTEXT() Zawsze wymaga transakcji, nawet przy samym odczycie Zamknij strumień przed zatwierdzeniem transakcji
  11. 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. 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. 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. 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. 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

×