sys.dm_db_xtp_checkpoint_files (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Отображает сведения о файлах контрольных точек OLTP в памяти, включая размер файла, физическое расположение и идентификатор транзакции.
Примечание.
Для текущей контрольной точки, которая не закрыта, столбец sys.dm_db_xtp_checkpoint_files
состояния будет иметь значение UNDER CONSTRUCTION для новых файлов. Контрольная точка закрывается автоматически при достаточном росте журнала транзакций с момента последнего контрольного пункта или при выполнении CHECKPOINT
команды. Дополнительные сведения см. в разделе КОНТРОЛЬНАЯ ТОЧКА (Transact-SQL).
Оптимизированная для памяти группа файлов внутренне использует файлы, оптимизированные только для добавления, для хранения вставленных и удаленных строк для таблиц в памяти. Существует два типа файлов. Файл данных содержит вставленные строки, а разностный файл содержит ссылки на удаленные строки.
SQL Server 2014 (12.x) существенно отличается от более поздних версий и обсуждается в SQL Server 2014.
Дополнительные сведения см. в статье "Создание и управление хранилищем для оптимизированных для памяти объектов".
SQL Server 2016 (13.x) и более поздних версий
В следующей таблице описываются столбцы, sys.dm_db_xtp_checkpoint_files
начиная с SQL Server 2016 (13.x).
Имя столбца | Тип | Описание |
---|---|---|
container_id | int | Идентификатор контейнера (представленный в виде файла с типом FILESTREAM в sys.database_files ) о том, что данные или разностные файлы являются частью. Присоединяется к file_id sys.database_files (Transact-SQL). |
container_guid | uniqueidentifier | GUID контейнера, в который входит корневой файл, данные или разностный файл. Присоединяется к file_guid sys.database_files таблице. |
checkpoint_file_id | uniqueidentifier | GUID файла контрольной точки. |
relative_file_path | nvarchar(256) | Путь к файлу относительно контейнера, с которому он сопоставлен. |
file_type | smallint | -1 бесплатно 0 для файла DATA. 1 для DELTA-файла. 2 для КОРНЕВОго файла 3 для БОЛЬШОГО ФАЙЛА ДАННЫХ |
file_type_desc | nvarchar(60) | FREE- Все файлы, поддерживаемые как БЕСПЛАТНЫЕ, доступны для выделения. Бесплатные файлы могут различаться в зависимости от ожидаемых потребностей системы. Максимальный размер — 1 ГБ. DATA — файлы данных содержат строки, вставляемые в оптимизированные для памяти таблицы. DELTA - Разностные файлы содержат ссылки на строки в файлах данных, которые были удалены. ROOT — корневые файлы содержат системные метаданные для оптимизированных для памяти и скомпилированных в собственном коде объектов. LARGE DATA — большие файлы данных содержат значения, вставляемые в столбцы (n)varchar(max) и varbinary(max), а также сегменты столбцов, которые являются частью индексов columnstore в таблицах, оптимизированных для памяти. |
internal_storage_slot | int | Индекс файла в массиве внутреннего хранилища. NULL для root или для состояния, отличного от 1 . |
checkpoint_pair_file_id | uniqueidentifier | Соответствующий файл DATA или DELTA. NULL для ROOT. |
file_size_in_bytes | bigint | Размер файла на диске. |
file_size_used_in_bytes | bigint | Для пар файлов контрольных точек, заполнение которых все еще выполняется, этот столбец будет обновляться после каждой следующей контрольной точки. |
logical_row_count | bigint | Для данных число вставленных строк. Для Delta число строк, удаленных после учета раскрываемой таблицы. Для root, NULL. |
state | smallint | 0 — ПРЕДВАРИТЕЛЬНО СОЗДАНО 1 - ПОД СТРОИТЕЛЬСТВОМ 2 — ACTIVE 3. MERGE TARGET 8. ОЖИДАНИЕ УСЕЧЕНИЯ ЖУРНАЛА |
state_desc | nvarchar(60) | PRECREATED — несколько файлов контрольных точек предварительно выделены, чтобы свести к минимуму или исключить любые ожидания выделения новых файлов по мере выполнения транзакций. Эти файлы могут отличаться по размеру и создаются в зависимости от предполагаемых потребностей рабочей нагрузки. Они не содержат данных. Это затраты на хранение в базах данных с MEMORY_OPTIMIZED_DATA файловой группой. UNDER CONSTRUCTION . Эти файлы контрольных точек находятся в стадии создания, то есть заполняются на основе записей журнала, созданных базой данных, и еще не являются частью контрольной точки. ACTIVE — они содержат вставленные или удаленные строки из предыдущих закрытых контрольных точек. Они содержат содержимое таблиц, которые считываются в память перед применением активной части журнала транзакций при перезапуске базы данных. Мы ожидаем, что размер этих файлов контрольных точек составляет примерно 2x от размера оптимизированных для памяти таблиц, предполагая, что операция слияния выполняется в соответствии с транзакционной рабочей нагрузкой. MERGE TARGET — цель операций слияния — эти файлы контрольных точек хранят консолидированные строки данных из исходных файлов, которые были определены политикой слияния. После установки слияния MERGE TARGET переходит в состояние ACTIVE. ОЖИДАНИЕ УСЕЧЕНИЯ ЖУРНАЛА. После установки слияния и CFP MERGE TARGET является частью устойчивой контрольной точки, файлы исходных контрольных точек слияния переходируют в это состояние. Файлы в этом состоянии необходимы для правильности работы базы данных с оптимизированной для памяти таблицей. Например, чтобы выполнить восстановление от устойчивой контрольной точки, чтобы вернуться назад во времени. |
lower_bound_tsn | bigint | Нижняя граница транзакции в файле; NULL Значение , если состояние не в (1, 3). |
upper_bound_tsn | bigint | Верхняя граница транзакции в файле; NULL Значение , если состояние не в (1, 3). |
begin_checkpoint_id | bigint | Идентификатор начальной контрольной точки. |
end_checkpoint_id | bigint | Идентификатор конечной контрольной точки. |
last_updated_checkpoint_id | bigint | Идентификатор последней контрольной точки, которая обновила этот файл. |
encryption_status | smallint | 0, 1, 2 |
encryption_status_desc | nvarchar(60) | 0 => UNENCRYPTED 1 => ЗАШИФРОВАНО С ПОМОЩЬЮ КЛЮЧА 1 2 => ЗАШИФРОВАНО С КЛЮЧОМ 2. Допустимо только для активных файлов. |
SQL Server 2014 (12.x)
В следующей таблице описываются столбцы для sys.dm_db_xtp_checkpoint_files
SQL Server 2014 (12.x).
Имя столбца | Тип | Описание |
---|---|---|
container_id | int | Идентификатор контейнера (представленный в виде файла с типом FILESTREAM в sys.database_files ) о том, что данные или разностные файлы являются частью. Присоединяется к file_id sys.database_files (Transact-SQL). |
container_guid | uniqueidentifier | Идентификатор GUID контейнера, частью которого является файл данных или разностный файл. |
checkpoint_file_id | GUID | Идентификатор файла данных или разностного файла. |
relative_file_path | nvarchar(256) | Путь к файлу данных или разностному файлу относительно расположения контейнера. |
file_type | tinyint | 0 для файла данных. 1 для разностного файла. NULL Если для столбца состояния задано значение 7. |
file_type_desc | nvarchar(60) | Тип файла: DATA_FILE, DELTA_FILE или NULL если для столбца состояния задано значение 7. |
internal_storage_slot | int | Индекс файла в массиве внутреннего хранилища. NULL Значение столбца состояния не равно 2 или 3. |
checkpoint_pair_file_id | uniqueidentifier | Соответствующий файл данных или разностный файл. |
file_size_in_bytes | bigint | Используемый размер файла. NULL Значение 5, 6 или 7 столбца состояния. |
file_size_used_in_bytes | bigint | Используемый размер файла задействованного файла. NULL Значение 5, 6 или 7 столбца состояния.Для пар файлов контрольных точек, заполнение которых все еще выполняется, этот столбец будет обновляться после каждой следующей контрольной точки. |
inserted_row_count | bigint | Число строк в файле данных. |
deleted_row_count | bigint | Число удаленных строк в разностном файле. |
drop_table_deleted_row_count | bigint | Количество строк в файле данных, затронутых операцией удаления таблицы. Относится к файлам данных, когда столбец состояния имеет значение 1. Показывает количество строк, которые удалены из удаленных таблиц. Статистика drop_table_deleted_row_count компилируется после завершения сборки мусора строк удаленных таблиц из памяти и достижения контрольной точки. При перезапуске SQL Server до отображения статистики раскрывающихся таблиц в этом столбце статистика будет обновлена как часть восстановления. В процессе восстановления строки из удаленных таблиц не загружаются. Статистика по удаленным таблицам компилируется на стадии загрузки и отображается в этом столбце по завершении восстановления. |
state | int | 0 — ПРЕДВАРИТЕЛЬНО СОЗДАНО 1 - ПОД СТРОИТЕЛЬСТВОМ 2 — ACTIVE 3. MERGE TARGET 4 — ОБЪЕДИНЕННЫЙ ИСТОЧНИК 5 . ТРЕБУЕТСЯ ДЛЯ РЕЗЕРВНОГО КОПИРОВАНИЯ ИЛИ ВЫСОКОЙ ДОСТУПНОСТИ 6 . ПЕРЕХОД НА TOMBSTONE 7 - TOMBSTONE |
state_desc | nvarchar(60) | PRECREATED — небольшой набор пар данных и разностных файлов, также известных как пары файлов контрольных точек (CFPS), хранятся предварительно, чтобы свести к минимуму или исключить любые ожидания выделения новых файлов по мере выполнения транзакций. Они создаются с размером файла данных размером 128 МБ и разностным размером 8 МБ, но не содержат данных. Число пар файлов соответствует числу логических процессоров или планировщиков (по одному на ядро, без максимального значения), но не менее 8. Это фиксированное пространство хранения в базах данных с таблицами, оптимизированными для памяти. UNDER CONSTRUCTION — набор cfps, которые хранят только что вставленные и, возможно, удаленные строки данных с момента последней контрольной точки. ACTIVE — файлы в этом состоянии содержат вставленные и удаленные строки из ближайших предыдущих закрытых контрольных точек. Эти пары файлов содержат все обаятельные вставленные и удаленные строки, которые необходимы, прежде чем будет применена активная часть журнала транзакций после перезапуска базы данных. Размер этих CFPs будет примерно в два раза больше, чем в памяти оптимизированных для памяти таблиц, при условии, что операция слияния является текущей с транзакционной рабочей нагрузкой. MERGE TARGET — CFP сохраняет консолидированные строки данных из CFP, которые были определены политикой слияния. После установки слияния MERGE TARGET переходит в состояние ACTIVE. MERGE SOURCE — после установки операции слияния исходные CFPs помечаются как MERGE SOURCE. Обратите внимание, что средство оценки политики слияния может определить несколько слияний, но CFP может участвовать только в одной операции слияния. ТРЕБУЕТСЯ ДЛЯ РЕЗЕРВНОГО КОПИРОВАНИЯ или высокого уровня доступности. После установки слияния и CFP MERGE TARGET является частью устойчивой контрольной точки, исходные CFPS слияния переходили в это состояние. Находящиеся в этом состоянии CFP необходимы для правильности работы базы данных с оптимизированной для памяти таблицы. Например, чтобы выполнить восстановление от устойчивой контрольной точки, чтобы вернуться назад во времени. Пару файлов можно отметить для сборки мусора после того, как точка усечения журнала выходит из диапазона транзакций. В ПЕРЕХОДЕ НА TOMBSTONE . Эти CFPs не требуются подсистемой OLTP в памяти и могут быть сборщиком мусора. Это состояние указывает, что эти CFP ожидают, чтобы фоновый поток перевел их в следующее состояние, которым является состояние TOMBSTONE. TOMBSTONE — эти CFPs ожидают, чтобы мусор был собран сборщиком мусора файлового потока. (sp_filestream_force_garbage_collection (Transact-SQL)) |
lower_bound_tsn | bigint | Нижняя граница транзакций, содержащихся в файле. NULL Значение столбца состояния не равно 2, 3 или 4. |
upper_bound_tsn | bigint | Верхняя граница транзакций, содержащихся в файле. NULL Значение столбца состояния не равно 2, 3 или 4. |
last_backup_page_count | int | Количество логических страниц, которое определяется при последнем резервном копировании. Применяется, когда столбцу состояния задается значение 2, 3, 4 или 5. NULL Значение , если число страниц не известно. |
delta_watermark_tsn | int | Транзакция последней контрольной точки, которая выполнила запись в этот разностный файл. Это знак разностного файла. |
last_checkpoint_recovery_lsn | nvarchar(23) | Регистрационный номер транзакции в журнале восстановления последней контрольной точки, которой все еще требуется файл. |
tombstone_operation_lsn | nvarchar(23) | Файл будет удален после того, как tombstone_operation_lsn оказывается позади регистрационного номера транзакции в журнале усечения журнала. |
logical_deletion_log_block_id | bigint | Относится только к состоянию 5. |
Разрешения
Необходимо разрешение VIEW DATABASE STATE
на базу данных.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW DATABASE PERFORMANCE STATE для базы данных.
Варианты использования
Общее хранилище, используемое в памяти OLTP, можно оценить следующим образом:
-- 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;
Чтобы просмотреть разбивку использования хранилища по состоянию и типу файла, выполните следующий запрос:
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;
Связанный контент
- Введение в таблицы, оптимизированные для памяти
- Динамические административные представления таблиц, оптимизированные для памяти
- Обзор и сценарии использования OLTP в памяти
- Оптимизация производительности с помощью технологий в памяти в База данных SQL Azure
- Оптимизация производительности с помощью технологий в памяти в Управляемый экземпляр SQL Azure