SQL Server 操作系统相关动态管理视图(Transact-SQL)

适用范围:SQL Server

本部分记录与 SQL Server 操作系统(SQLOS)关联的动态管理视图(DMV)。 SQLOS 管理特定于 SQL Server 的作系统资源。

内存管理和内存拓扑

这些 DMV 展示了 SQL Server 如何跨职员、缓存、NUMA 节点和虚拟地址空间分配、跟踪、缓存和结构内存。

动态管理视图 Description
sys.dm_os_memory_clerks 报告内存分配内存的内部 SQLOS 对象(用于查明内存使用者)的内存使用情况。
sys.dm_os_memory_nodes 显示跨 NUMA 节点的内存分布,显示每个节点的内存分配方式。
sys.dm_os_nodes 返回对 SQL Server 可见的 NUMA 节点信息,包括节点 ID 和内存分区。
sys.dm_os_memory_brokers 显示 SQLOS 中的内存中转站对象,这些对象管理不同使用者的分配单元。
sys.dm_os_memory_cache_clock_hands 为内存缓存对象提供时钟扫描位置,可用于诊断缓存逐出行为。
sys.dm_os_memory_cache_counters 返回内存缓存的大小和使用情况指标,帮助分析缓存利用率模式。
sys.dm_os_memory_cache_entries 显示有关内存缓存中各个条目的详细信息,从而对缓存的数据和对象进行精细分析。
sys.dm_os_memory_cache_hash_tables 列出内存缓存使用的哈希表,并显示分布和负载因子的指标。
sys.dm_os_sys_memory 提供从 SQLOS 用于内存分配决策的 OS 报告的系统内存指标。
sys.dm_os_process_memory 提供进程级内存指标,例如 SQL Server 的物理内存和虚拟内存使用情况。
sys.dm_os_virtual_address_dump 提供虚拟地址描述符的转储,有助于进行低级别内存诊断。

缓冲池和存储缓存

这些 DMV 报告缓冲池、缓存中的数据页和缓冲池扩展 (BPE) 配置。

动态管理视图 Description
sys.dm_os_buffer_descriptors 返回 SQL Server 缓冲池中当前缓存的所有数据页的元数据,包括数据库和文件关联和页面类型详细信息。 此视图可用于分析缓存使用情况和分发。
sys.dm_os_buffer_pool_extension_configuration 为缓冲池扩展(BPE)提供配置和状态,使缓冲池能够扩展到磁盘存储。 此视图可用于了解扩展缓存的配置方式。

计划、辅助角色、任务和并发

这些 DMV 描述了 SQLOS 计划、工作线程、任务、队列、调度程序池、旋转锁、闩锁和低级别并发机制。

动态管理视图 Description
sys.dm_os_schedulers 显示 SQLOS 的 CPU 计划的计划程序状态和运行队列长度。 此视图对于 CPU 和并行诊断至关重要。
sys.dm_os_workers 列出 SQLOS 管理的辅助角色,包括指示异常或执行条件的状态和标志。
sys.dm_os_threads 返回有关 SQLOS 中工作线程的信息,这些线程和计划程序分析非常有用。
sys.dm_os_tasks 显示 SQLOS 当前管理的任务,提供状态和计划详细信息。
sys.dm_os_dispatcher_pools 提供有关跨计划程序处理工作分配的内部调度程序池的统计信息。 此视图可帮助你分析并行度和计划负载。
sys.dm_os_spinlock_stats 聚合旋转锁争用统计信息,这有助于识别低级别同步瓶颈。
sys.dm_os_latch_stats 聚合闩锁等待统计信息,显示低级别同步基元的争用和分布。
sys.dm_os_waiting_tasks 显示当前正在等待的任务以及等待类型和资源详细信息,从而启用实时等待分析。

等待和性能诊断

这些 DMV 公开可用于排查性能问题的等待统计信息、环形缓冲区诊断、计数器或服务器级数据。

动态管理视图 Description
sys.dm_os_wait_stats 聚合实例中线程等待的等待统计信息,这是诊断 CPU、内存或 I/O 瓶颈的基础视图。
sys.dm_os_ring_buffers 从内部环缓冲区返回条目,用于诊断系统级事件,例如内存压力或计划程序警报。
sys.dm_os_performance_counters 公开 SQL Server 的性能计数器值 - 通常用于将 SQL 级别活动与 Windows 性能监视指标相关联。
sys.dm_os_server_diagnostics_log_configurations 显示服务器诊断日志的配置,这些日志捕获关键的内部事件和诊断。

主机、群集和环境信息

这些 DMV 提供有关主机 OS 特征、群集配置、多主机参与以及常规实例和系统元数据的信息。

动态管理视图 Description
sys.dm_os_host_info 公开与本地 SQL Server 实例相关的主机 OS 详细信息,例如 OS 版本和配置。
sys.dm_os_hosts 为 SQL Server 实例已知的每个主机返回一行,该行适用于多主机或群集环境。
sys.dm_os_cluster_nodes 当 SQL Server 在 Windows 故障转移群集中运行时,返回有关群集节点名称和角色的信息。
sys.dm_os_cluster_properties 显示与 SQL Server 节点相关的群集级属性和设置,例如群集状态和配置的行为。
sys.dm_os_sys_info 返回高级 SQL Server 实例信息,例如 CPU 计数、内存配置和 SQLOS 版本。
sys.dm_os_windows_info 提供有关托管 SQL Server 的 Windows 环境(例如版本和计算机特征)的特定于 OS 的信息。
sys.dm_os_child_instances 列出有关分布式或多实例部署等环境中的子 SQLOS 实例的资源和状态信息。

磁盘、卷和 I/O 环境

这些 DMV 与存储设备、可用卷以及文件级或卷级统计信息相关。

动态管理视图 Description
sys.dm_os_enumerate_fixed_drives 返回 SQL Server 实例可访问的固定磁盘驱动器列表以及基本空间信息。
sys.dm_os_volume_stats 按卷返回数据库文件的 I/O 统计信息,有助于分析磁盘活动和性能。

加载的模块(可执行代码上下文)

此 DMV 公开当前已加载的 DLL 和模块以及活动执行组件。

动态管理视图 Description
sys.dm_os_loaded_modules 列出 SQL Server 辅助角色加载的模块(DLL/程序集),提供对服务器内执行的代码的见解。

低级别调试和诊断

此 DMV 主要用于升级、调试、故障分析或深度 SQL Server 引擎故障排除。

动态管理视图 Description
sys.dm_os_stacks 显示辅助角色的堆栈信息,通常用于深入故障排除或故障转储分析。

内部和不支持的 DMV

以下与 SQL Server 操作系统相关的动态管理视图仅用于信息性目的。 不支持。 无法保证将来的兼容性。:

  • sys.dm_os_function_symbolic_name
  • sys.dm_os_memory_allocations
  • sys.dm_os_sublatches
  • sys.dm_os_worker_local_storage