Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Wyświetla informacje o In-Memory plikach punktów kontrolnych OLTP, w tym rozmiar pliku, lokalizację fizyczną oraz identyfikator transakcji.
Uwaga / Notatka
Dla bieżącego punktu kontrolnego, który nie został zamknięty, kolumna stanu będzie sys.dm_db_xtp_checkpoint_files W BUDOWIE dla nowych plików. Punkt kontrolny zamyka się automatycznie, gdy od ostatniego punktu kontrolnego nastąpił wystarczający wzrost dziennika transakcji lub gdy wydasz CHECKPOINT polecenie. Aby uzyskać więcej informacji, zobacz CHECKPOINT (Transact-SQL).
Grupa plików zoptymalizowana pod pamięć wewnętrznie używa plików tylko z dodawaniem do przechowywania wstawionych i usuniętych wierszy dla tabel w pamięci. Istnieją dwa rodzaje plików. Plik danych zawiera wstawione wiersze, natomiast plik delta zawiera odwołania do usuniętych wierszy.
SQL Server 2014 (12.x) znacznie różni się od nowszych wersji i jest omawiany w SQL Server 2014.
Więcej informacji można znaleźć w artykule Tworzenie i zarządzanie pamięcią masową dla obiektów Memory-Optimized.
SQL Server 2016 (13.x) i późniejsze
Poniższa tabela opisuje kolumny dla sys.dm_db_xtp_checkpoint_files, zaczynając od SQL Server 2016 (13.x).
| Nazwa kolumny | Typ | Description |
|---|---|---|
| container_id | int | ID kontenera (reprezentowanego jako plik o typie FILESTREAM w ), sys.database_filesktórego jest częścią pliku danych lub delta. Łączy się z file_idsys.database_files (Transact-SQL). |
| container_guid | uniqueidentifier | GUID kontenera, którego częścią jest plik root, data lub delta. Dołącza do stołu file_guidsys.database_files . |
| checkpoint_file_id | uniqueidentifier | GUID pliku checkpoint. |
| relative_file_path | nvarchar(256) | Ścieżka pliku względem kontenera, na który jest mapowany. |
| file_type | smallint | -1 za DARMO 0 dla pliku DATA. 1 dla pliku DELTA. 2 dla pliku ROOT 3 dla pliku LARGE DATA |
| opis_typu_pliku | nvarchar(60) | ZA DARMO – Wszystkie pliki utrzymywane jako DARMOWE są dostępne do alokacji. Darmowe pliki mogą się różnić rozmiarem w zależności od przewidywanych potrzeb systemu. Maksymalny rozmiar to 1 GB. DATA - Pliki danych zawierają wiersze wstawione do tabel zoptymalizowanych pod pamięć. DELTA - Pliki Delta zawierają odwołania do wierszy w plikach danych, które zostały usunięte. ROOT - Pliki root zawierają metadane systemowe dla obiektów zoptymalizowanych pod pamięć i natywnie skompilowanych. DUŻE DANE - Duże pliki danych zawierają wartości wstawione w kolumnach (n)varchar(max) i varbinary(max), a także segmenty kolumn będące częścią indeksów magazynu kolumn w tabelach zoptymalizowanych pod pamięć. |
| internal_storage_slot | int | Indeks pliku w wewnętrznej tablicy pamięci.
NULL dla ROOT lub dla stanu innego niż 1. |
| checkpoint_pair_file_id | uniqueidentifier | Odpowiadający plik DATA lub DELTA.
NULL dla ROOT. |
| file_size_in_bytes | bigint | Rozmiar pliku na dysku. |
| file_size_used_in_bytes | bigint | Dla par plików punktów kontrolnych, które są nadal wypełniane, ta kolumna zostanie zaktualizowana po kolejnym punkcie kontrolnym. |
| logical_row_count | bigint | Dla danych liczba wstawionych wierszy. Dla Delty liczba wierszy usuniętych po uwzględnieniu tabeli dropów. Dla Root, NULL. |
| stan | smallint | 0 - PRECREATED 1 - W BUDOWIE 2 - AKTYWNA 3 - CEL POŁĄCZENIA 8 - OCZEKIWANIE NA OBCIĘCIE LOGARYTMU |
| opis_stanu | nvarchar(60) | PRECREATED - Wstępnie przydziela się kilka plików punktów kontrolnych, aby zminimalizować lub wyeliminować oczekiwania na alokację nowych plików podczas wykonywania transakcji. Pliki te mogą się różnić rozmiarem i są tworzone w zależności od szacowanych potrzeb obciążenia. Nie zawierają żadnych danych. Jest to narzut pamięci masowej w bazach danych z grupą MEMORY_OPTIMIZED_DATA. W BUDOWIE – Te pliki punktów kontrolnych są w trakcie budowy, co oznacza, że są wypełniane na podstawie rekordów logów generowanych przez bazę danych i nie są jeszcze częścią punktu kontrolnego. AKTYWNE – Zawierają one wstawione/usunięte wiersze z poprzednich zamkniętych punktów kontrolnych. Zawierają zawartość tabel, które są odczytywane do pamięci przed zastosowaniem aktywnej części dziennika transakcyjnego podczas restartu bazy danych. Spodziewamy się, że rozmiar tych plików checkpointów będzie około 2x większy niż rozmiar tabel zoptymalizowanych pamięcią w pamięci, zakładając, że operacja scalania nadąża za obciążeniem transakcyjnym. CEL MERGE – Cel operacji scalania – te pliki checkpointów przechowują skonsolidowane wiersze danych z plików źródłowych, które zostały zidentyfikowane przez politykę merge. Po zainstalowaniu merge MERGE TARGET przechodzi w stan AKTYWNY. OCZEKIWANIE NA OBCIĘCIE LOGÓW - Po zainstalowaniu merge i stanie się CELOWYM MERGE CFP częścią trwałego punktu kontrolnego, pliki punktu kontrolnego merge przechodzą do tego stanu. Pliki w tym stanie są potrzebne dla poprawności operacyjnej bazy danych z tabelą zoptymalizowaną pod pamięć. Na przykład, by odzyskać czas po trwałym punkcie kontrolnym, by cofnąć się w czasie. |
| lower_bound_tsn | bigint | Dolna granica transakcji w pliku; NULL jeśli nie należy do (1, 3). |
| upper_bound_tsn | bigint | Górna granica transakcji w pliku; NULL jeśli nie należy do (1, 3). |
| begin_checkpoint_id | bigint | Identyfikacja punktu kontrolnego start. |
| end_checkpoint_id | bigint | Identyfikacja końcowego punktu kontrolnego. |
| last_updated_checkpoint_id | bigint | Identyfikacja ostatniego punktu kontrolnego, który zaktualizował ten plik. |
| encryption_status | smallint | 0, 1, 2 |
| encryption_status_desc | nvarchar(60) | 0 => NIESZYFROWANE 1 => ZASZYFROWANE KLUCZEM 1 2 => ZASZYFROWANE KLUCZEM 2. Dotyczy tylko aktywnych plików. |
SQL Server 2014 (12.x)
Poniższa tabela opisuje kolumny dla sys.dm_db_xtp_checkpoint_files, dla SQL Server 2014 (12.x).
| Nazwa kolumny | Typ | Description |
|---|---|---|
| container_id | int | ID kontenera (reprezentowanego jako plik o typie FILESTREAM w ), sys.database_filesktórego jest częścią pliku danych lub delta. Łączy się z file_idsys.database_files (Transact-SQL). |
| container_guid | uniqueidentifier | GUID kontenera, którego częścią jest plik danych lub delta. |
| checkpoint_file_id | identyfikator GUID | ID pliku danych lub delta. |
| relative_file_path | nvarchar(256) | Ścieżka do pliku danych lub delta, względem lokalizacji kontenera. |
| file_type | tinyint | 0 dla pliku danych. 1 dla pliku delta. NULL jeśli kolumna stanu jest ustawiona na 7. |
| opis_typu_pliku | nvarchar(60) | Typ pliku: DATA_FILE, DELTA_FILE lub NULL jeśli kolumna stanu jest ustawiona na 7. |
| internal_storage_slot | int | Indeks pliku w wewnętrznej tablicy pamięci.
NULL jeśli kolumna stanu nie jest 2 lub 3. |
| checkpoint_pair_file_id | uniqueidentifier | Odpowiadający plik danych lub delta. |
| file_size_in_bytes | bigint | Rozmiar używanego pliku.
NULL jeśli kolumna stanu jest ustawiona na 5, 6 lub 7. |
| file_size_used_in_bytes | bigint | Używany rozmiar użytego pliku.
NULL jeśli kolumna stanu jest ustawiona na 5, 6 lub 7.Dla par plików punktów kontrolnych, które są nadal wypełniane, ta kolumna zostanie zaktualizowana po kolejnym punkcie kontrolnym. |
| inserted_row_count | bigint | Liczba wierszy w pliku danych. |
| deleted_row_count | bigint | Liczba usuniętych wierszy w pliku delta. |
| drop_table_deleted_row_count | bigint | Liczba wierszy w plikach danych dotkniętych przez tabelę dropów. Dotyczy plików danych, gdy kolumna stanu równa się 1. Pokazuje liczbę usuniętych wierszy z porzuconych tabel. Statystyki drop_table_deleted_row_count są kompilowane po zakończeniu zbierania śmieci wierszy z porzuconych tabel i po wykonaniu punktu kontrolnego. Jeśli zrestartujesz SQL Server przed pojawieniem się statystyk tabel dropów w tej kolumnie, statystyki zostaną zaktualizowane w ramach odzyskiwania. Proces odzyskiwania nie ładuje wierszy z porzuconych tabel. Statystyki dotyczące porzuconych tabel są kompilowane podczas fazy ładowania i raportowane w tej kolumnie po zakończeniu odzyskiwania. |
| stan | int | 0 - PRECREATED 1 - W BUDOWIE 2 - AKTYWNA 3 - CEL POŁĄCZENIA 4 - POŁĄCZONE ŹRÓDŁO 5 - WYMAGANE DO BACKUPU/HA 6 - W PRZEJŚCIU DO NAGROBKA 7 - NAGROBEK |
| opis_stanu | nvarchar(60) | PRECREATED – Mały zestaw par plików danych i delta, znanych również jako pary plików checkpoint (CFP), jest przechowywany w prealokacji, aby zminimalizować lub wyeliminować oczekiwania na alokację nowych plików podczas wykonywania transakcji. Są tworzone z rozmiarem pliku danych 128 MB i rozmiarem delta 8 MB, ale nie zawierają danych. Liczba CFP obliczana jest jako liczba procesorów logicznych lub planistów (jeden na rdzeń, bez maksymalnej), z minimalną liczbą 8. Jest to stały narzut pamięci masowej w bazach danych z tabelami zoptymalizowanymi pod pamięć. W BUDOWIE – Zestaw CFP, które przechowują nowo włożone i ewentualnie usunięte wiersze danych od ostatniego punktu kontrolnego. AKTYWNE - Zawierają one wstawione i usunięte wiersze z poprzednich zamkniętych punktów kontrolnych. Te CFP zawierają wszystkie wymagane wstawione i usunięte wiersze wymagane przed zastosowaniem aktywnej części dziennika transakcji przy wznowieniu bazy danych. Rozmiar tych CFP będzie około dwukrotności wielkości tabel zoptymalizowanych pamięciowo, zakładając, że operacja scalania jest aktualna z obciążeniem transakcyjnym. CEL SCALANIA – CFP przechowuje skonsolidowane wiersze danych z CFP(ów), które zostały zidentyfikowane przez politykę scalania. Po zainstalowaniu merge MERGE TARGET przechodzi w stan AKTYWNY. MERGED SOURCE - Po zainstalowaniu operacji merge, źródłowe CFP są oznaczane jako MERGED SOURCE. Należy zauważyć, że ewaluator polityki łączenia może zidentyfikować wiele fuzji, ale CFP może uczestniczyć tylko w jednej operacji połączenia. WYMAGANE DO BACKUP/HA - Po zainstalowaniu merge i MERGE TARGET CFP jako części trwałego punktu kontrolnego, CFP source merge przechodzą do tego stanu. CFP w tym stanie są potrzebne dla poprawności operacyjnej bazy danych z tabelą zoptymalizowaną pod pamięć. Na przykład, by odzyskać czas po trwałym punkcie kontrolnym, by cofnąć się w czasie. CFP może być oznaczony do garbage collection, gdy punkt logarytmu obcięcia przekroczy swój zakres transakcji. W PRZEJŚCIU DO TOMBSTONE – Te CFP nie są potrzebne silnikowi OLTP In-Memory i mogą być odrzucane do śmieci. Ten stan wskazuje, że te CFP czekają na wątek tła, który przeniesie je do następnego stanu, którym jest TOMBSTONE. TOMBSTONE – Te CFP czekają na odnalezienie śmieci przez zbieracz odpadów w strumieniu plików. (sp_filestream_force_garbage_collection (Transact-SQL)) |
| lower_bound_tsn | bigint | Dolna granica transakcji zawartych w pliku.
NULL jeśli kolumna stanu jest inna niż 2, 3 lub 4. |
| upper_bound_tsn | bigint | Górna granica transakcji zawartych w pliku.
NULL jeśli kolumna stanu jest inna niż 2, 3 lub 4. |
| last_backup_page_count | int | Logiczna liczba stron ustalana jest przy ostatniej kopii zapasowej. Dotyczy wtedy, gdy kolumna stanu jest ustawiona na 2, 3, 4 lub 5.
NULL jeśli liczba stron nie jest znana. |
| delta_watermark_tsn | int | Transakcja ostatniego punktu kontrolnego, który zapisał się do tego pliku delta. To jest znak wodny pliku delta. |
| last_checkpoint_recovery_lsn | nvarchar(23) | Sekwencja rejestru rejestru odzyskiwania ostatniego punktu kontrolnego, który nadal potrzebuje pliku. |
| tombstone_operation_lsn | nvarchar(23) | Plik zostanie usunięty, gdy tombstone_operation_lsn będzie za numerem sekwencji logarytmu skracania. |
| logical_deletion_log_block_id | bigint | Dotyczy tylko stanu 5. |
Permissions
Wymaga uprawnienia VIEW DATABASE STATE do bazy danych.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI BAZY DANYCH dla bazy danych.
Przypadki użycia
Możesz oszacować całkowitą ilość pamięci zużytej przez In-Memory OLTP następująco:
-- total storage used by In-Memory OLTP
SELECT SUM (file_size_in_bytes)/(1024*1024) as file_size_in_MB
FROM sys.dm_db_xtp_checkpoint_files;
Aby zobaczyć podział wykorzystania pamięci według stanu i typu pliku, uruchom następujące zapytanie:
SELECT state_desc
, file_type_desc
, COUNT(*) AS [count]
, SUM(file_size_in_bytes) / 1024 / 1024 AS [on-disk size MB]
FROM sys.dm_db_xtp_checkpoint_files
GROUP BY state, state_desc, file_type, file_type_desc
ORDER BY state, file_type;
Treści powiązane
- Wprowadzenie do tabel zoptymalizowanych pod kątem pamięci
- Memory-Optimized Dynamiczne widoki zarządzania tabelą
- In-Memory Przegląd i scenariusze użycia OLTP
- Optymalizowanie wydajności przy użyciu technologii w pamięci w usłudze Azure SQL Database
- Optymalizowanie wydajności przy użyciu technologii w pamięci w usłudze Azure SQL Managed Instance