| Termin | Definicja |
|---|---|
| Widok sys.periods | sys.periods zawiera definicje okresów ważności wykorzystywanych przez tabele temporalne. Widok sys.periods jako opis okresu temporalnego
Widok nie zawiera historii biznesowej jako takiej i nie służy do odczytywania kolejnych wersji danych. Jest częścią metadanych bazy danych. Jego zadaniem jest opis konstrukcji tabeli: wskazanie identyfikatora obiektu oraz identyfikatorów kolumn pełniących funkcję początku i końca okresu. Faktyczne wartości dat i czasu znajdują się w tabeli głównej oraz, w przypadku tabeli systemowo wersjonowanej, w tabeli historii. Rozdzielenie metadanych od danych pozwala najpierw rozpoznać strukturę, a dopiero później budować zapytania zwracające konkretne wersje rekordów. W praktyce sys.periods, kolumny czasu i kontekst technicznyNajważniejszą wartością w Przykładowy sposób interpretacji metadanych polega na wykonaniu połączenia według identyfikatora obiektu, a następnie dwukrotnym połączeniu z Kolumny okresu są zazwyczaj kolumnami typu daty i czasu, a ich wartości są obsługiwane przez silnik w sposób charakterystyczny dla tabel temporalnych. Koniec okresu jest zwykle traktowany jako granica wyłączna, co ma znaczenie przy filtrowaniu wersji obowiązujących w określonym momencie. Właściwe zapytania temporalne uwzględniają tę semantykę automatycznie, natomiast ręczne warunki na kolumnach okresu powinny być budowane ze świadomością różnicy między granicą włączną a wyłączną. W porównaniu z Typowe problemy przy odczycie sys.periodsJednym z częstych problemów jest traktowanie identyfikatorów kolumn jako nazw. Wartość Innym źródłem pomyłek jest niewłaściwe filtrowanie po nazwie tabeli. Ta sama nazwa może wystąpić w różnych schematach, dlatego bezpieczniej uwzględnić zarówno nazwę schematu, jak i nazwę obiektu. Przy automatycznym przetwarzaniu metadanych należy także pamiętać, że uprawnienia użytkownika mogą ograniczać widoczność obiektów katalogowych. Brak oczekiwanego wiersza nie zawsze oznacza, że tabela nie ma okresu; może wskazywać na brak dostępu do odpowiednich metadanych. Problemy pojawiają się również wtedy, gdy analiza miesza tabelę bieżącą z tabelą historii. Podczas migracji schematu należy zweryfikować zgodność nazw i typów kolumn, a także kolejność operacji wykonywanych w skrypcie. Zmiana kolumny używanej jako początek lub koniec okresu może wpływać na działanie wersjonowania oraz na zapytania raportowe. Warto najpierw odczytać metadane, zapisać stan wyjściowy, a po zmianie ponownie sprawdzić Praktyczne wskazówki dotyczące sys.periodsNajwygodniej rozpocząć diagnostykę od zapytania zwracającego identyfikator obiektu oraz oba identyfikatory kolumn. Następnie należy dodać nazwy obiektu i schematu, a na końcu nazwy kolumn. Takie podejście ułatwia wykrycie sytuacji, w której raport wskazuje inną tabelę o podobnej nazwie albo gdy kolumna początku i kolumna końca zostały pomylone w logice aplikacji.
Warto zachować gotowe zapytanie diagnostyczne w dokumentacji projektu. Powinno ono zwracać nazwę schematu, nazwę tabeli, nazwę kolumny początku oraz nazwę kolumny końca. Przy większej liczbie tabel temporalnych taki raport pozwala szybko porównać konfigurację i znaleźć obiekt odstający od przyjętego wzorca. Dodatkową korzyścią jest możliwość użycia raportu przed wdrożeniem zmian oraz po ich wykonaniu. Kiedy zgłosić problem z sys.periods do serwisuDo serwisu warto zgłosić się wtedy, gdy zapytania temporalne zwracają nieoczekiwane wersje, tabela historii nie jest prawidłowo wykorzystywana, po migracji nie można odczytać metadanych albo aplikacja zgłasza błąd przy operacjach na tabeli systemowo wersjonowanej. Szczególnie pomocne jest przekazanie informacji o nazwie bazy, schemacie, tabeli, treści komunikatu błędu oraz wyniku odczytu z Warszawskie Pogotowie Komputerowe 24/7 może pomóc w uporządkowaniu diagnostyki komputera, analizie konfiguracji SQL Server oraz przygotowaniu bezpiecznego planu dalszych działań. Przed przekazaniem sprzętu lub nośnika warto zabezpieczyć kopie zapasowe i zanotować, od kiedy występuje problem. W przypadku środowiska testowego można przygotować uproszczony przykład tabeli, aby rozdzielić błąd definicji okresu od problemu z konkretną aplikacją lub zapytaniem. |