| Termin | Definicja |
|---|---|
| Widok sys.tables (history_table_id) | Kolumna history_table_id w sys.tables wskazuje powiązaną tabelę historii dla obiektu temporalnego. Widok sys.tables i znaczenie history_table_idWidok W przypadku zwykłej tabeli kolumna Rozróżnienie tabeli bieżącej i historycznej ma znaczenie podczas analizy zapytań, kontroli spójności oraz planowania zmian w schemacie. Tabela bieżąca zawiera aktualny stan danych, natomiast tabela historii przechowuje poprzednie wersje rekordów wraz z okresami obowiązywania. Powiązanie między nimi jest elementem konfiguracji temporalnej, a nie zwykłą relacją z kluczem obcym widocznym w danych aplikacyjnych. history_table_id w kontekście tabel temporalnych i porównańTabele temporalne system-versioned działają według określonego modelu. W tabeli bieżącej znajdują się kolumny okresu, najczęściej definiowane jako początek i koniec obowiązywania wiersza. Gdy rekord zostaje zmieniony albo usunięty, jego wcześniejsza wersja może zostać zapisana w tabeli historii. Kolumna Warto odróżnić W praktyce można spotkać dwa sposoby organizacji tabel historii. System może utworzyć ją automatycznie, gdy konfiguracja nie wskazuje konkretnego obiektu, albo można przypisać wcześniej przygotowaną tabelę. W obu przypadkach w metadanych tabeli bieżącej pojawia się identyfikator obiektu historii. Nazwa tabeli może być zmieniona, a schemat może zostać odczytany osobno, dlatego opieranie diagnostyki wyłącznie na nazwie obiektu jest mniej bezpieczne niż korzystanie z identyfikatora. Na podstawie Widok sys.tables history_table_id a typowe problemyJednym z częstszych problemów jest interpretowanie zera w kolumnie Inna trudność wynika z mylenia identyfikatora tabeli bieżącej z identyfikatorem tabeli historii. Zapytanie może zwrócić wiele rekordów z widoku Problemy mogą również pojawić się po zmianie właściciela, schematu albo nazwy tabeli. Samo przemianowanie obiektu nie powinno zmieniać jego identyfikatora, ale skrypty kontrolne oparte wyłącznie na nazwie mogą przestać działać. Z tego powodu w narzędziach administracyjnych zaleca się traktowanie Warto zachować ostrożność podczas ręcznego modyfikowania tabeli historii. Tabela ta nie jest niezależnym archiwum, które można dowolnie opróżniać, przebudowywać lub zasilać bez uwzględnienia zasad temporalnych. Zmiana struktury musi uwzględniać zgodność typów kolumn, kolejność pól, kolumny okresu oraz ustawienia ochrony wersji. W przeciwnym razie zapytania historyczne mogą zwracać niepełne wyniki albo operacje na tabeli bieżącej mogą kończyć się błędami. Jak analizować history_table_id w praktycePodstawowa analiza powinna rozpocząć się od ustalenia identyfikatora badanej tabeli. Następnie odczytuje się jej rekord z Przykładowy schemat zapytania może wyglądać następująco:
Przydatne jest także sprawdzenie uprawnień osoby wykonującej zapytanie. Widoki katalogowe podlegają zasadom widoczności metadanych, więc brak oczekiwanego rekordu może wynikać nie z braku obiektu, lecz z ograniczonego dostępu do informacji o nim. W analizie należy uwzględnić kontekst bazy danych, ponieważ identyfikatory obiektów są rozpatrywane w obrębie konkretnej bazy. Ten sam numer nie powinien być bezpośrednio przenoszony między bazami jako uniwersalny identyfikator. Podczas tworzenia procedur kontrolnych warto przewidzieć przypadki brzegowe: tabelę bez historii, tabelę historii wskazaną przez inną tabelę, obiekt usunięty po wykonaniu nieaktualnego skryptu oraz zmianę nazwy lub schematu. Dobrze przygotowana procedura nie zakłada, że każdy wpis ma powiązanie, i nie traktuje pustego wyniku jako jednoznacznego dowodu awarii. Wynik powinien być zestawiony z przeznaczeniem tabeli oraz z pozostałymi metadanymi. Kiedy sprawdzić sys.tables history_table_id w serwisieAnaliza kolumny Jeżeli potrzebna jest pomoc w odczytaniu metadanych, weryfikacji powiązań tabel lub uporządkowaniu problemu z bazą danych, można skorzystać z usług firmy Warszawskie Pogotowie Komputerowe 24/7. Przed przekazaniem zadania warto przygotować nazwę bazy, nazwę schematu, nazwę tabeli oraz opis obserwowanego objawu, bez udostępniania haseł i danych poufnych. Taki zestaw informacji ułatwia odtworzenie kontekstu i pozwala skupić analizę na właściwym obiekcie. W praktyce nie należy usuwać ani zmieniać powiązanej tabeli historii wyłącznie na podstawie jej nazwy. Najpierw trzeba potwierdzić relację przez |