sys.dm_os_sys_info (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)
返回一组杂项的有用信息,以及 SQL Server 可用于和使用的资源。
注意
若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此名称,请使用名称 sys.dm_pdw_nodes_os_sys_info
。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。
列名称 | 数据类型 | 说明和特定于版本的说明 |
---|---|---|
cpu_ticks |
bigint | 指定当前的 CPU 检查计数。 CPU 时钟周期数是从处理器的 RDTSC 计数器获得的。 这是一个单调增加的数字。 不可为 Null。 |
ms_ticks |
bigint | 指定自从计算机启动以来的毫秒数。 不可为 Null。 |
cpu_count |
int | 指定系统中的逻辑 CPU 数。 不可为 Null。 在Azure SQL 数据库中,此列可能会返回托管数据库或弹性池的计算机上的逻辑 CPU 数。 若要确定数据库或弹性池可用的逻辑 CPU 数,请使用 cpu_limit sys.dm_user_db_resource_governance中的列。 |
hyperthread_ratio |
int | 指定一个物理处理器包公开的逻辑内核数与物理内核数的比。 不可为 Null。 |
physical_memory_in_bytes |
bigint | 适用于: SQL Server 2008 (10.0.x) 和 SQL Server 2008 R2 (10.50.x)。 指定计算机上的物理内存总量。 不可为 Null。 |
physical_memory_kb |
bigint | 适用于:SQL Server 2012 (11.x) 及更高版本。 指定计算机上的物理内存总量。 不可为 Null。 在Azure SQL 数据库中,此列返回托管数据库或弹性池的计算机上的物理内存总量。 若要确定数据库或弹性池可用的物理内存量,请使用 process_memory_limit_mb sys.dm_os_job_object中的列。 |
virtual_memory_in_bytes |
bigint | 适用于: SQL Server 2008 (10.0.x) 和 SQL Server 2008 R2 (10.50.x)。 对用户模式进程可用的虚拟内存的数量。 此值可用于确定是否使用 3 GB 交换机启动 SQL Server。 |
virtual_memory_kb |
bigint | 适用于:SQL Server 2012 (11.x) 及更高版本。 指定对用户模式进程可用的虚拟地址空间的总量。 不可为 Null。 |
bpool_committed |
int | 适用于: SQL Server 2008 (10.0.x) 和 SQL Server 2008 R2 (10.50.x)。 表示内存管理器中的已提交内存 (KB)。 不包括内存管理器中的保留内存。 不可为 Null。 |
committed_kb |
bigint | 适用于:SQL Server 2012 (11.x) 及更高版本。 表示内存管理器中的已提交内存 (KB)。 不包括内存管理器中的保留内存。 不可为 Null。 |
bpool_commit_target |
int | 适用于: SQL Server 2008 (10.0.x) 和 SQL Server 2008 R2 (10.50.x)。 表示 SQL Server 内存管理器可以占用的内存量 (KB)。 |
committed_target_kb |
bigint | 适用于:SQL Server 2012 (11.x) 及更高版本。 表示 SQL Server 内存管理器可以占用的内存量 (KB)。 目标量是使用多个输入计算的,例如: - 系统的当前状态,包括其负载 - 当前进程请求的内存 - 计算机上安装的内存量 - 配置参数 如果 committed_target_kb 大于 committed_kb ,内存管理器将尝试获取更多内存。 如果 committed_target_kb 小于 committed_kb ,内存管理器会尝试收缩提交的内存量。 始终 committed_target_kb 包括被盗和保留的内存。 不可为 Null。 |
bpool_visible |
int | 适用于: SQL Server 2008 (10.0.x) 和 SQL Server 2008 R2 (10.50.x)。 在进程虚拟地址空间中可直接访问的缓冲池中的 8 KB 缓冲区数。 如果未使用地址窗口扩展(AWE),则缓冲池获取其内存目标时( bpool_committed = bpool_commit_target ),其值 bpool_visible 等于值 bpool_committed 。 在 32 位版本的 SQL Server 上使用 AWE 时, bpool_visible 表示用于访问缓冲池分配的物理内存的 AWE 映射窗口的大小。 此映射窗口的大小由进程地址空间绑定,因此可见量小于提交的量。 出于数据库页以外的目的,内部组件消耗内存可以进一步降低此值。 如果值 bpool_visible 太低,则可能会收到内存不足错误。 |
visible_target_kb |
bigint | 适用于:SQL Server 2012 (11.x) 及更高版本。committed_target_kb 与 . 不可为 Null。 |
stack_size_in_bytes |
int | 指定 SQL Server 创建的每个线程的调用堆栈的大小。 不可为 Null。 |
os_quantum |
bigint | 表示非抢先任务的量程(以毫秒数度量)。 Quantum (以秒为单位) = os_quantum / CPU 时钟速度。 不可为 Null。 |
os_error_mode |
int | 指定 SQL Server 进程的错误模式。 不可为 Null。 |
os_priority_class |
int | 指定 SQL Server 进程的优先级类。 Nullable。32 = 普通。 错误日志显示 SQL Server 正在从正常优先级基础 (7 ) 启动。128 = 高。 错误日志显示 SQL Server 以高优先级基数运行(13 )。有关详细信息,请参阅“配置优先级提升”(服务器配置选项)。 |
max_workers_count |
int | 表示可以创建的最大工作线程数。 不可为 Null。 |
scheduler_count |
int | 表示在 SQL Server 进程中配置的用户计划程序数。 不可为 Null。 |
scheduler_total_count |
int | 表示 SQL Server 中的计划程序总数。 不可为 Null。 |
deadlock_monitor_serial_number |
int | 指定当前死锁监视序列的 ID。 不可为 Null。 |
sqlserver_start_time_ms_ticks |
bigint | 表示 ms_tick SQL Server 上次启动时的数字。 与当前 ms_ticks 列进行比较。 不可为 Null。 |
sqlserver_start_time |
datetime | 指定上次启动 SQL Server 的本地系统日期和时间。 不可为 Null。 许多其他 SQL Server DMV 中的信息仅包括自上次数据库引擎启动以来的活动。 使用此列查找上次 SQL Server 数据库引擎启动时间。 |
affinity_type |
int | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 指定当前使用中的服务器 CPU 进程关联的类型。 不可为 Null。 有关详细信息,请参阅 ALTER SERVER CONFIGURATION (Transact-SQL)。 1 = MANUAL 2 = AUTO |
affinity_type_desc |
nvarchar(60) | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 描述列 affinity_type 。 不可为 Null。MANUAL = 至少为一个 CPU 设置了相关性。AUTO = SQL Server 可以在 CPU 之间自由移动线程。 |
process_kernel_time_ms |
bigint | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 内核模式下所有 SQL Server 线程花费的总时间(以毫秒为单位)。 该值可能会大于单处理器时钟,因为它包括服务器上所有处理器的时间。 不可为 Null。 |
process_user_time_ms |
bigint | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 用户模式下所有 SQL Server 线程花费的总时间(以毫秒为单位)。 该值可能会大于单处理器时钟,因为它包括服务器上所有处理器的时间。 不可为 Null。 |
time_source |
int | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 指示 SQL Server 用于检索时钟时间的 API。 不可为 Null。 0 = QUERY_PERFORMANCE_COUNTER 1 = MULTIMEDIA_TIMER |
time_source_desc |
nvarchar(60) | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 描述列 time_source 。 不可为 Null。QUERY_PERFORMANCE_COUNTER = QueryPerformanceCounter API 检索时钟时间。MULTIMEDIA_TIMER = 检索时钟时间的 多媒体计时器 API。 |
virtual_machine_type |
int | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 指示 SQL Server 是否在虚拟化环境中运行。 不可为 Null。 0 = NONE 1 = HYPERVISOR 2 = OTHER |
virtual_machine_type_desc |
nvarchar(60) | 适用于: SQL Server 2008 R2(10.50.x)及更高版本。 描述列 virtual_machine_type 。 不可为 Null。NONE = SQL Server 未在虚拟机中运行。HYPERVISOR = SQL Server 在运行虚拟机监控程序(采用硬件辅助虚拟化的主机 OS)托管的虚拟机内运行。OTHER = SQL Server 在操作系统托管的虚拟机中运行,该虚拟机不使用硬件助手,例如Microsoft虚拟电脑。 |
softnuma_configuration |
int | 适用于:SQL Server 2016 (13.x) 及更高版本。 指定 NUMA 节点的配置方式。 不可为 Null。 0 = OFF 指示硬件默认值1 = 自动软 NUMA2 = 通过注册表手动软 NUMA |
softnuma_configuration_desc |
nvarchar(60) | 适用于:SQL Server 2016 (13.x) 及更高版本。OFF = 软 NUMA 功能已关闭ON = SQL Server 自动确定 Soft-NUMA 的 NUMA 节点大小MANUAL = 手动配置的软 NUMA |
process_physical_affinity |
nvarchar(3072) | 适用于: 从 SQL Server 2017(14.x)开始。 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
sql_memory_model |
int | 适用于: SQL Server 2012 (11.x) SP4、SQL Server 2016 (13.x) SP1 及更高版本。 指定 SQL Server 用于分配内存的内存模型。 不可为 Null。 1 = 传统内存模型2 = 锁定内存中的页3 = 内存中的大页 |
sql_memory_model_desc |
nvarchar(60) | 适用于: SQL Server 2012 (11.x) SP4、SQL Server 2016 (13.x) SP1 及更高版本。 指定 SQL Server 用于分配内存的内存模型。 不可为 Null。 CONVENTIONAL = SQL Server 正在使用传统内存模型来分配内存。 当 SQL Server 服务帐户在启动期间没有“锁定页”内存特权时,这是默认数据库引擎内存模型。LOCK_PAGES = SQL Server 正在使用内存中的锁页来分配内存。 当 SQL Server 服务帐户在 SQL Server 启动时具有“锁定内存中的页”权限时,这是内存管理器的默认数据库引擎。LARGE_PAGES = SQL Server 正在使用内存中的大型页来分配内存。 当 SQL Server 服务帐户在服务器启动期间具有“锁定内存页”权限,并且启用跟踪标志 834 时,SQL Server 才使用 Enterprise Edition 分配内存。 |
pdw_node_id |
int | 适用于:Azure Synapse Analytics、Analytics Platform System (PDW) 此分发所在节点的标识符。 |
socket_count |
int | 适用于: SQL Server 2016 (13.x) SP2 及更高版本。 指定系统上可用的处理器套接字数。 |
cores_per_socket |
int | 适用于: SQL Server 2016 (13.x) SP2 及更高版本。 指定系统上可用的每个套接字的处理器数。 |
numa_node_count |
int | 适用于: SQL Server 2016 (13.x) SP2 及更高版本。 指定系统上可用的 NUMA 节点数。 此列包括物理 NUMA 节点和软 NUMA 节点。 |
container_type |
int | 适用于:SQL Server 2017 (14.x) 及更高版本。 指定容器 SQL Server 的类型正在内部运行。 不可为 Null。 0 (默认值) = NONE 1 = LINUX CONTAINER 2 = WINDOWS SERVER CONTAINER 3 = HYPER-V CONTAINER |
container_type_desc |
nvarchar(60) | 适用于:SQL Server 2017 (14.x) 及更高版本。 描述列 container_type 。 不可为 Null。NONE = SQL Server 未在容器中运行。LINUX CONTAINER = SQL Server 在 Linux 容器中运行。WINDOWS SERVER CONTAINER = SQL Server 正在 Windows Server 容器中运行。HYPER-V CONTAINER = SQL Server 在 Hyper-V 容器中运行。 |
权限
在 SQL Server 2019(15.x)和早期版本以及SQL 托管实例上,需要VIEW SERVER STATE
权限。
在 SQL Server 2022(16.x)及更高版本中,需要对服务器具有 VIEW SERVER PERFORMANCE STATE
权限。
在Azure SQL 数据库基本、S0 和 S1 服务目标以及弹性池中的数据库,需要服务器管理员帐户、Microsoft Entra 管理员帐户或服务器角色的成员##MS_ServerStateReader##
身份。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE
权限或 ##MS_ServerStateReader##
服务器角色中的成员身份。