sys.dm_db_xtp_checkpoint_stats (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

返回与当前数据库中的内存中 OLTP 检查点操作有关的统计信息。 如果数据库没有内存中 OLTP 对象, sys.dm_db_xtp_checkpoint_stats 则返回一个空的结果集。

有关详细信息,请参阅 内存中 OLTP(内存中优化)

USE [In_Memory_db_name]
SELECT * FROM sys.dm_db_xtp_checkpoint_stats;  

SQL Server 2014 (12.x) 与较新版本大相径庭,在 SQL Server 2014 的主题中讨论较低。

SQL Server 2016 (13.x) 及更高版本

下表介绍从 sys.dm_db_xtp_checkpoint_statsSQL Server 2016(13.x)开始的列。

列名称 类型 描述
last_lsn_processed bigint 控制器看到的最后一个 LSN。
end_of_log_lsn numeric(38) 日志末尾的 LSN。
bytes_to_end_of_log bigint 控制器未处理的日志字节,对应于两者之间 last_lsn_processedend_of_log_lsn之间的字节数。
log_consumption_rate bigint 控制器的事务日志消耗率(以 知识库(KB)/秒为单位)。
active_scan_time_in_ms bigint 控制器在主动扫描事务日志时花费的时间。
total_wait_time_in_ms bigint 未扫描日志时控制器的累积等待时间。
waits_for_io bigint 控制器线程对日志 IO 的等待数。
io_wait_time_in_ms bigint 控制器线程等待日志 IO 的累积时间。
waits_for_new_log_count bigint 控制器线程为要生成新日志而发生的等待数。
new_log_wait_time_in_ms bigint 控制器线程等待新日志的累积时间。
idle_attempts_count bigint 控制器转换为空闲状态的次数。
tx_segments_dispatched bigint 控制器看到的段数,并调度到序列化程序。 段是构成序列化单元的日志的连续部分。 它当前大小为 1 MB,但将来可能会更改。
segment_bytes_dispatched bigint 控制器向序列化程序调度的字节总数,因为数据库重启。
bytes_serialized bigint 自数据库重启以来序列化的字节总数。
serializer_user_time_in_ms bigint 序列化程序在用户模式下花费的时间。
serializer_kernel_time_in_ms bigint 序列化程序在内核模式下花费的时间。
xtp_log_bytes_consumed bigint 自数据库重启以来使用的日志字节总数。
checkpoints_closed bigint 自数据库重启以来关闭的检查点计数。
last_closed_checkpoint_ts bigint 上次关闭检查点的时间戳。
hardened_recovery_lsn numeric(38) 恢复从此 LSN 开始。
hardened_root_file_guid uniqueidentifier 由于上次完成的检查点而强化的根文件的 GUID。
hardened_root_file_watermark bigint 仅限内部。 最多读取根文件的有效程度(这只是一种内部相关类型-称为 BSN)。
hardened_truncation_lsn numeric(38) 截断点的 LSN。
log_bytes_since_last_close bigint 最后一个接近当前日志末尾的字节数。
time_since_last_close_in_ms bigint 自上次关闭检查点以来的时间。
current_checkpoint_id bigint 目前,新段将分配给此检查点。 检查point 系统是管道。 当前检查点是分配给日志中的段之一。 达到限制后,控制器释放检查点,并创建为当前的新点。
current_checkpoint_segment_count bigint 当前检查点中的段计数。
recovery_lsn_candidate bigint 仅在内部。 关闭时被选为恢复状态的 current_checkpoint_id 候选项。
outstanding_checkpoint_count bigint 管道中等待关闭的检查点数。
closing_checkpoint_id bigint 结束检查点的 ID。

序列化程序并行工作,因此一旦它们完成,检查点是一个候选项,可通过关闭线程关闭。 但关闭线程一次只能关闭一个,必须按顺序关闭,因此关闭检查点是关闭线程正在处理的。
recovery_checkpoint_id bigint 要用于恢复的检查点的 ID。
recovery_checkpoint_ts bigint 恢复检查点的时间戳。
bootstrap_recovery_lsn numeric(38) 启动的恢复 LSN。
bootstrap_root_file_guid uniqueidentifier 启动的根文件的 GUID。
internal_error_code bigint 任何控制器、序列化程序、关闭和合并线程都看到的错误。
bytes_of_large_data_serialized bigint 序列化的数据量。
db_in_checkpoint_only_mode bit 如此 如果数据库处于内存中 OLTP 检查仅点模式。

SQL Server 2014 (12.x)

下表描述了 SQL Server 2014 (12.x)中的sys.dm_db_xtp_checkpoint_stats列。

列名称 类型 描述
log_to_process_in_bytes bigint 该线程的当前日志序列号 (LSN) 和日志结尾之间的日志字节数。
total_log_blocks_processed bigint 自服务器启动以来处理的日志块总数。
total_log_records_processed bigint 自服务器启动以来处理的日志记录总数。
xtp_log_records_processed bigint 自服务器启动以来处理的内存中 OLTP 日志记录总数。
total_wait_time_in_ms bigint 累计等待时间(毫秒)。
waits_for_io bigint 日志 IO 的等待数。
io_wait_time_in_ms bigint 等待日志 IO 所用的累计时间。
waits_for_new_log bigint 生成新日志的等待数。
new_log_wait_time_in_ms bigint 等待新日志的累积时间。
log_generated_since_last_checkpoint_in_bytes bigint 自上一个内存中 OLTP 检查点以来生成的日志量。
ms_since_last_checkpoint bigint 自上一个内存中 OLTP 检查点以来的时间量(毫秒)。
checkpoint_lsn numeric (38) 与上次完成的内存中 OLTP 检查点关联的恢复日志序列号 (LSN)。
current_lsn numeric (38) 当前正在处理的日志记录的 LSN。
end_of_log_lsn numeric (38) 日志结尾的 LSN。
task_address varbinary(8) SOS_Task 的地址。 加入以 sys.dm_os_tasks 查找其他信息。

权限

需要对数据库拥有 VIEW DATABASE STATE 权限。

SQL Server 2022 及更高版本的权限

需要对数据库拥有 VIEW DATABASE PERFORMANCE STATE 权限。