| Termin | Definicja |
|---|---|
| FILESTREAM i śledzenie zmian | FILESTREAM i śledzenie zmian opisuje integrację tego mechanizmu z funkcją monitorującą modyfikacje danych w bazie. FILESTREAM jako część modelu danych SQL ServerFILESTREAM jest funkcją programu Microsoft SQL Server przeznaczoną do przechowywania dużych wartości binarnych poza klasycznymi stronami danych bazy, przy zachowaniu ich powiązania z rekordami tabeli. Kolumna musi mieć typ Mechanizm udostępnia dwa sposoby dostępu. Aplikacja może używać zwykłych instrukcji Transact-SQL, traktując zawartość jako wartość binarną, albo skorzystać z interfejsu strumieniowego Win32 przez uchwyt uzyskany funkcją FILESTREAM nie jest niezależnym systemem kontroli wersji plików. Zmiana zawartości wartości Co dokładnie rejestruje change trackingChange Tracking w SQL Server jest lekkim mechanizmem rejestrowania faktu, że wiersz tabeli został dodany, zmodyfikowany albo usunięty. Po włączeniu śledzenia na poziomie bazy poleceniem Do odczytu zmian służy funkcja Change Tracking nie przechowuje poprzedniej wartości pliku ani pełnej treści zmodyfikowanego obiektu FILESTREAM. Jeżeli aplikacja wykryje zmianę rekordu, musi ponownie odczytać aktualną wartość z tabeli albo użyć dostępu strumieniowego. Przy operacji usunięcia wiersza można otrzymać informację o kluczu i rodzaju zmiany, lecz nie można oczekiwać, że sam Change Tracking pozwoli odzyskać usuniętą zawartość pliku. Synchronizacja rekordów zawierających dane FILESTREAMTypowy proces synchronizacji rozpoczyna się od zapisania przez aplikację wartości wersji zmian, na przykład po pełnym odczycie danych. Przy kolejnym uruchomieniu aplikacja przekazuje ten punkt do W przypadku modyfikacji zawartości pliku należy zachować ostrożność przy interpretacji Wersja zmiany nie powinna być uznawana za bezterminowy identyfikator historii. SQL Server usuwa stare informacje zgodnie z okresem przechowywania ustawionym dla Change Tracking. Jeżeli proces synchronizacyjny przetrzyma swój punkt kontrolny zbyt długo, wymagane dane mogą zostać oczyszczone. Sytuację można sprawdzać funkcją Granice diagnostyki połączenia FILESTREAM ze śledzeniem zmianPodczas analizy problemu należy oddzielić trzy warstwy: konfigurację FILESTREAM w instancji SQL Server, strukturę tabeli oraz ustawienia Change Tracking w bazie i tabeli. Sam fakt, że rekord zawiera kolumnę W diagnostyce warto porównać numer ostatniej poprawnie przetworzonej wersji z bieżącą wersją zmian i minimalną wersją ważną dla tabeli. Należy również zweryfikować, czy zapytanie synchronizacyjne wykonuje się przed oczyszczeniem wpisów oraz czy połączenie używane do dostępu strumieniowego zachowuje wymagany kontekst transakcji. Błędy wynikające z pominięcia Przy ocenie działania systemu trzeba też rozróżnić zmianę metadanych od zmiany treści. Aktualizacja nazwy lub innej kolumny rekordu może wygenerować zdarzenie zmiany, mimo że plik pozostał taki sam. Z kolei modyfikacja wartości FILESTREAM powinna być traktowana jako zmiana danych powiązanych z wierszem, ale informacja zwracana przez Change Tracking nadal nie zawiera poprzedniej zawartości ani szczegółowego dziennika bajtów. Takie rozróżnienie jest konieczne, aby nie uznać samego pojawienia się wpisu w |