Wydajność systemowej wersjonowanej tabeli czasowej zoptymalizowanej pod kątem pamięci
Dotyczy: SQL Server 2016 (13.x) i nowszych
azure SQL Managed Instance
W tym artykule omówiono niektóre konkretne zagadnienia dotyczące wydajności podczas korzystania z tabel czasowych zoptymalizowanych pod kątem pamięci w wersji systemowej.
Podczas dodawania wersjonowania systemowego do istniejącej tabeli nietemporalnej, należy spodziewać się wpływu na wydajność operacji aktualizacji i usuwania, ponieważ tabela historii jest aktualizowana automatycznie.
Zagadnienia dotyczące wydajności
Każda aktualizacja i usunięcie są rejestrowane w wewnętrznej tabeli historii zoptymalizowanej pod kątem pamięci. Może wystąpić nieoczekiwane użycie pamięci, jeśli obciążenie korzysta z tych dwóch operacji masowo. W związku z tym zalecamy następujące zagadnienia:
Nie wykonuj masowych usunięć z bieżącej tabeli na raz. Rozważ usuwanie danych w wielu partiach, z ręcznie wywoływanym czyszczeniem danych między nimi za pomocą sp_xtp_flush_temporal_history, lub podczas
SYSTEM_VERSIONING = OFF
.Nie przeprowadzaj masywnych operacji aktualizacji tabel na raz, ponieważ może to skutkować konsumpcją do dwóch razy więcej pamięci niż wymagana do zaktualizowania tabeli zoptymalizowanej pod kątem pamięci nietymporalnej. To podwojone zużycie pamięci jest tymczasowe, ponieważ zadanie czyszczenia danych działa regularnie w celu utrzymania zużycia pamięci wewnętrznych tabel przejściowych w przewidywanych granicach w stanie stabilnym. Granica to 10 procent użycia pamięci bieżącej tabeli czasowej. Rozważ wykonanie masowych aktualizacji w kilku partiach lub podczas
SYSTEM_VERSIONING = OFF
, na przykład używając aktualizacji do ustawienia wartości domyślnych dla nowo dodanych kolumn.
Okres aktywacji zadania opróżniania danych nie jest konfigurowalny, ale można ręcznie wykonać sp_xtp_flush_temporal_history zgodnie z potrzebami.
Rozważ użycie klastrowanego indeksu kolumnowego jako opcji przechowywania dla tabeli historii opartej na bazie danych dyskowej, zwłaszcza jeśli planujesz uruchamiać zapytania analityczne dotyczące danych historycznych, które korzystają z funkcji agregacji lub okienkowania. W takim przypadku indeks magazynu kolumn z klastrowaniem jest optymalnym wyborem dla tabeli historii. Klastrowane indeksy magazynu kolumn zapewniają dobrą kompresję danych i zachowują się w sposób przyjazny dla wstawiania, zgodnie z sposobem generowania danych historii.
Powiązana zawartość
- tabele czasowe o wersjonowaniu systemowym i tabele zoptymalizowane pod kątem pamięci
- Tworzenie tabeli czasowej zoptymalizowanej pod kątem pamięci w wersji systemowej
- Współpraca z tabelami czasowymi zoptymalizowanymi pod kątem pamięci, wersjonowanymi przez system
- Monitorowanie tabel czasowych zoptymalizowanych pod kątem pamięci w wersji systemowej
- tabele czasowe
- sprawdzanie spójności systemu tabel czasowych
- Zarządzanie przechowywaniem danych historycznych w systemowo-wersjonowanych tabelach czasowych
- widoki i funkcje metadanych dla tabel czasowych