| Termin | Definicja |
|---|---|
| Temporal Tables | Temporal Tables to tabele automatycznie zachowujące historię zmian każdego wiersza wraz z okresem jego ważności. Jak działają Temporal Tables w SQL ServerTemporal Tables, czyli tabele czasowe, to mechanizm systemu SQL Server służący do automatycznego przechowywania kolejnych wersji rekordów. Tabela główna zawiera aktualny stan danych, natomiast tabela historii przechowuje wcześniejsze wersje wierszy wraz z informacją o okresie, w którym dana wersja była obowiązująca. Mechanizm ten jest określany w SQL Server jako system-versioned temporal table. Każdy wiersz tabeli czasowej korzysta z dwóch kolumn okresu ważności. Są to kolumny typu Zmiana rekordu a zapis poprzedniej wersjiPodczas wykonania instrukcji Czasy przechowywane w kolumnach okresu są ustalane przez SQL Server na podstawie początku transakcji i wyrażane w czasie UTC. Z tego powodu analiza historii powinna uwzględniać strefę czasową oraz sposób prezentowania dat w aplikacji. Jeżeli kilka zmian zostanie wykonanych w ramach jednej transakcji, ich znaczniki czasu mogą wskazywać ten sam moment rozpoczęcia transakcji. Temporal Tables rejestrują stan danych, ale nie opisują automatycznie przyczyny zmiany, użytkownika aplikacji ani uzasadnienia biznesowego operacji. Zapytania historyczne i ograniczenia mechanizmuDo odczytu danych z uwzględnieniem historii SQL Server udostępnia klauzulę Wynik zapytania historycznego może zawierać kilka wersji tego samego rekordu, dlatego identyfikator klucza głównego nie wystarcza do rozróżnienia wszystkich zmian. Tabela historii nie powinna być traktowana jak zwykła tabela archiwalna przeznaczona do dowolnej ręcznej modyfikacji. SQL Server pilnuje zgodności jej struktury z tabelą główną, w tym liczby kolumn, ich kolejności i typów. Przy projektowaniu rozwiązania trzeba także uwzględnić rozmiar tabeli historii, indeksy oraz wpływ częstych aktualizacji na wydajność. Temporal Tables nie zastępują kopii zapasowych, replikacji ani dziennika transakcji, ponieważ służą przede wszystkim do odtwarzania zmian danych na poziomie wierszy. Sprawdzanie poprawności działania tabel czasowychDiagnostyka problemów z Temporal Tables powinna rozpocząć się od sprawdzenia, czy tabela główna ma włączone wersjonowanie systemowe oraz czy wskazana tabela historii istnieje i zachowała zgodną strukturę. Należy zweryfikować definicję kolumn okresu, ich typ Jeżeli historia nie zawiera oczekiwanej zmiany, trzeba ustalić, czy operacja rzeczywiście została wykonana na tabeli czasowej, czy nie została przerwana przez błąd transakcji. Istotne jest także odróżnienie czasu wykonania zapytania od czasu obowiązywania wersji. Instrukcja |