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_stats
SQL Server 2016(13.x)开始的列。
列名称 | 类型 | 描述 |
---|---|---|
last_lsn_processed |
bigint | 控制器看到的最后一个 LSN。 |
end_of_log_lsn |
numeric(38) | 日志末尾的 LSN。 |
bytes_to_end_of_log |
bigint | 控制器未处理的日志字节,对应于两者之间 last_lsn_processed 和 end_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 权限。
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈