| Termin | Definicja |
|---|---|
| FILESTREAM a typ FILETABLE | FILESTREAM a typ FILETABLE opisuje zależność między podstawowym mechanizmem przechowywania a rozszerzeniem umożliwiającym dostęp przez standardowe API systemu plików. FILESTREAM a typ FILETABLE — czym różnią się te mechanizmyFILESTREAM i FILETABLE należą do funkcji programu Microsoft SQL Server przeznaczonych do obsługi dużych danych binarnych, takich jak dokumenty, zdjęcia, nagrania lub inne pliki przechowywane wraz z informacjami opisowymi. FILESTREAM jest podstawowym mechanizmem, który pozwala przechowywać zawartość obiektu typu FILETABLE stanowi rozszerzenie tego podejścia. Jest gotową, wyspecjalizowaną strukturą tabelaryczną opartą na FILESTREAM, zaprojektowaną do wygodnego odwzorowania hierarchii folderów i plików. Oprócz danych binarnych zawiera kolumny opisujące między innymi nazwę elementu, ścieżkę, typ obiektu, poziom w strukturze oraz informacje potrzebne do zachowania relacji pomiędzy folderami i plikami. Dzięki temu możliwe jest korzystanie z danych zarówno za pomocą zapytań T-SQL, jak i przez standardowy interfejs systemu plików. Najprościej ujmując, FILESTREAM odpowiada za sposób przechowywania dużej zawartości binarnej, a FILETABLE dostarcza gotowy model organizacji plików. FILETABLE nie jest niezależnym zamiennikiem FILESTREAM, lecz jego funkcjonalnym wykorzystaniem. Zależność ta ma znaczenie przy projektowaniu bazy: można używać FILESTREAM w całkowicie własnej tabeli, z własnymi kolumnami i relacjami, albo wybrać FILETABLE, gdy potrzebne jest bardziej bezpośrednie odwzorowanie katalogów oraz plików. Kontekst techniczny i porównanie zastosowań - FILESTREAM a typ FILETABLEW klasycznej tabeli zawartość pliku może być zapisana bezpośrednio w kolumnie binarnej. Przy większych obiektach takie rozwiązanie może zwiększać rozmiar bazy i obciążenie operacji wejścia-wyjścia. FILESTREAM pozwala oddzielić logiczny rekord od jego dużej zawartości, pozostawiając metadane w tabeli, a dane pliku w obszarze zarządzanym przez SQL Server. Z perspektywy aplikacji nadal zachowana zostaje kontrola transakcyjna, dlatego zapis lub usunięcie danych może być powiązane z innymi zmianami wykonywanymi w bazie. Własna tabela z obsługą FILESTREAM sprawdza się wtedy, gdy dokument ma być częścią rozbudowanego modelu danych. Można wówczas dodać identyfikator właściciela, status obiegu, wersję dokumentu, datę utworzenia, klasyfikację lub relacje do innych rekordów. Struktura pozostaje dopasowana do konkretnej aplikacji, ale wymaga samodzielnego zaprojektowania reguł nazewnictwa, katalogowania oraz obsługi ścieżek. FILETABLE upraszcza scenariusze, w których podstawową jednostką jest plik umieszczony w hierarchii folderów. Udostępnia zestaw kolumn i reguł pozwalających odwzorować strukturę katalogów, a także mechanizmy śledzenia zmian dokonywanych przez dostęp plikowy. Zmiana nazwy lub położenia elementu może zostać odzwierciedlona w danych tabeli bez konieczności budowania całej obsługi od podstaw. W zamian otrzymuje się model mniej elastyczny niż własna tabela, ponieważ jego działanie opiera się na określonym schemacie i zasadach FILETABLE. W obu przypadkach konieczne jest prawidłowe przygotowanie instancji SQL Server, bazy danych, obszaru FILESTREAM oraz uprawnień. Samo utworzenie kolumny binarnej nie oznacza jeszcze, że mechanizm został skonfigurowany. Dostęp przez system plików podlega innym wymaganiom niż zwykłe zapytania SQL, dlatego należy rozdzielić uprawnienia użytkowników bazy, dostęp do udziału plikowego i prawa aplikacji. W środowisku produkcyjnym trzeba również uwzględnić kopie zapasowe, odzyskiwanie danych, monitoring wolnego miejsca oraz sposób przenoszenia bazy na inną instalację. Typowe problemy i błędy konfiguracyjne - FILESTREAM a typ FILETABLECzęstym błędem jest utożsamianie FILETABLE z każdym magazynem plików powiązanym z SQL Server. FILETABLE ma własny schemat, określone kolumny i zachowanie, natomiast FILESTREAM zastosowany w zwykłej tabeli daje większą kontrolę nad modelem danych. Nieprawidłowy wybór może prowadzić do sytuacji, w której struktura katalogów nie odpowiada wymaganiom aplikacji albo odwrotnie — powstaje rozbudowany model własny mimo potrzeby prostego dostępu do dokumentów. Problemy mogą pojawić się także wtedy, gdy FILESTREAM jest aktywowany tylko częściowo. Należy sprawdzić ustawienia instancji, właściwości bazy danych, utworzony kontener oraz uprawnienia do dostępu plikowego. Błędna ścieżka, brak odpowiednich praw lub niezgodna konfiguracja udziału może powodować, że dane są widoczne w zapytaniach, ale nie można korzystać z przewidzianego dostępu plikowego. W innym przypadku operacje na plikach mogą kończyć się błędami mimo poprawnie działających zapytań T-SQL. W FILETABLE szczególnej uwagi wymaga synchronizacja pomiędzy nazwami plików, ścieżkami i rekordami tabeli. Ręczne modyfikowanie elementów w sposób pomijający mechanizmy SQL Server może doprowadzić do niespójności metadanych, problemów z blokadami albo nieoczekiwanych konfliktów nazw. Należy również pamiętać, że usunięcie rekordu lub pliku może mieć konsekwencje dla powiązanej zawartości, dlatego procedury kasowania powinny być wcześniej przetestowane na kopii danych. Do częstych przyczyn spowolnień należą nieprzemyślane zapytania, brak indeksów dla kolumn opisowych, przechowywanie bardzo dużych obiektów bez analizy sposobu ich odczytu oraz nieuwzględnienie rozmiaru obszaru przeznaczonego na dane FILESTREAM. Znaczenie ma również konfiguracja kopii zapasowych. Odtworzenie samej części relacyjnej bez odpowiadających jej danych plikowych może nie zapewnić kompletnego odzyskania dokumentów. Weryfikacji wymagają także wersja SQL Server, zgodność aplikacji i sposób obsługi transakcji. W jakich sytuacjach warto umówić wizytę serwisową - FILESTREAM a typ FILETABLEWsparcie techniczne może być potrzebne, gdy FILESTREAM lub FILETABLE przestaje działać po przeniesieniu bazy, aktualizacji systemu, zmianie uprawnień albo odtworzeniu kopii zapasowej. Zgłoszenie warto rozważyć również wtedy, gdy dokumenty są widoczne w tabelach, lecz nie można ich otworzyć, operacje na folderach nie aktualizują metadanych albo aplikacja zgłasza błędy dostępu mimo pozornie poprawnej konfiguracji. W takich przypadkach przydatne jest przeanalizowanie logów SQL Server, ustawień instancji, struktury bazy, uprawnień oraz stanu nośnika przechowującego dane. W Warszawskim Pogotowiu Komputerowym 24/7 można zlecić sprawdzenie komputera, na którym występują problemy z bazą danych, dostępem do plików lub działaniem aplikacji korzystającej z SQL Server. Przed rozpoczęciem prac może zostać wykonana darmowa diagnoza LAPTOPA, co ułatwia rozdzielenie problemu sprzętowego od błędu konfiguracji, systemu lub oprogramowania. W przypadku komputera stacjonarnego zakres diagnostyki powinien zostać ustalony przed przyjęciem urządzenia, zwłaszcza gdy konieczne jest zabezpieczenie danych albo analiza lokalnej instalacji bazy. Przed przekazaniem sprzętu zaleca się przygotowanie opisu objawów, informacji o momencie wystąpienia problemu oraz danych dotyczących ostatnich zmian w systemie. Nie powinno się usuwać kontenerów FILESTREAM, kasować folderów ani uruchamiać przypadkowych narzędzi naprawczych bez wcześniejszej kopii zapasowej. Jeżeli baza zawiera ważne dokumenty, priorytetem powinno być zachowanie spójności danych i ustalenie, czy możliwe jest bezpieczne wykonanie kopii przed dalszą diagnostyką. |