sys.dm_os_sys_info (Transact-SQL)
返回一组有关计算机和有关 SQL Server 可用资源及其已占用资源的有用杂项信息。
适用范围:SQL Server(SQL Server 2008 到当前版本)。 |
列名 |
数据类型 |
说明 |
|
---|---|---|---|
cpu_ticks |
bigint |
指定当前的 CPU 时钟周期计数。 CPU 时钟周期数是从处理器的 RDTSC 计数器获得的。 它是一个仅增加的数字。 不可为 Null。 |
|
ms_ticks |
bigint |
指定自从计算机启动以来的毫秒数。 不可为 Null。 |
|
cpu_count |
int |
指定系统中的逻辑 CPU 数。 不可为 Null。 |
|
hyperthread_ratio |
int |
指定一个物理处理器包公开的逻辑内核数与物理内核数的比。 不可为 Null。 |
|
physical_memory_in_bytes |
bigint |
指定计算机上的物理内存总量。 不可为 Null。
|
|
physical_memory_kb |
bigint |
指定计算机上的物理内存总量。 不可为 Null。
|
|
virtual_memory_in_bytes |
bigint |
对用户模式进程可用的虚拟内存的数量。 通过使用 3 GB 开关,可以用它来确定是否 SQL Server 已启动。
|
|
virtual_memory_kb |
bigint |
指定对用户模式进程可用的虚拟地址空间的总量。 不可为 Null。
|
|
bpool_commited |
int |
表示内存管理器中的已提交内存 (KB)。 不包括内存管理器中的保留内存。 不可为 Null。
|
|
committed_kb |
int |
表示内存管理器中的已提交内存 (KB)。 不包括内存管理器中的保留内存。 不可为 Null。
|
|
bpool_commit_target |
int |
表示 SQL Server 内存管理器可以占用的内存量 (KB)。
|
|
committed_target_kb |
int |
表示 SQL Server 内存管理器可以占用的内存量 (KB)。 使用类似如下的不同输入计算目标量:
如果 committed_target_kb 大于 committed_kb,内存管理器将尝试获得额外内存。 如果 committed_target_kb 小于 committed_kb,内存管理器将尝试减少提交的内存量。 committed_target_kb 总是包括被盗用和保留的内存。 不可为 Null。
|
|
bpool_visible |
int |
在进程虚拟地址空间中可直接访问的缓冲池中的 8 KB 缓冲区数。 当未使用地址窗口化扩展插件 (AWE),缓冲区池已获取其内存目标 (bpool_committed = bpool_commit_target) 时,bpool_visible 的值与 bpool_committed 的值相等。当在 32 位版本的 SQL Server 上使用 AWE 时,bpool_visible 表示用于访问由缓冲池区分配的物理内存的 AWE 映射窗口的大小。 此映射窗口的大小由进程地址空间绑定,因此,可见数量将小于提交数量,并且通过为数据库页之外的其他用途而消耗内存的内部组件会进一步减少可见数量。 如果 bpool_visible 的值太低,则可能收到内存不足错误。
|
|
visible_target_kb |
int |
与 committed_target_kb 相同。 不可为 Null。
|
|
stack_size_in_bytes |
int |
指定 SQL Server 创建的每个线程的调用堆栈的大小。 不可为 Null。 |
|
os_quantum |
bigint |
表示非抢先任务的量程(以毫秒数度量)。 量程(秒)= os_quantum/CPU 时钟速度。 不可为 Null。 |
|
os_error_mode |
int |
指定 SQL Server 进程的错误模式。 不可为 Null。 |
|
os_priority_class |
int |
指定 SQL Server 进程的优先级类。 可以为 NULL。 32 = 正常(错误日志将指出 SQL Server 正以正常的优先级基数 (=7) 启动)。 128 = 高(错误日志将指出 SQL Server 正以高优先级基数启动)。 (=13).) 有关详细信息,请参阅配置 priority boost 服务器配置选项。 |
|
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 |
表示 SQL Server 上次启动时的 ms_tick 数。 与当前 ms_ticks 列进行比较。 不可为 Null。 |
|
sqlserver_start_time |
datetime |
指定 SQL Server 上次启动时的日期和时间。 不可为 Null。 |
|
affinity_type |
int |
指定当前使用中的服务器 CPU 进程关联的类型。 不可为 Null。 有关详细信息,请参阅 ALTER SERVER CONFIGURATION (Transact-SQL)。 1 = MANUAL 2 = AUTO
|
|
affinity_type_desc |
varchar(60) |
描述 affinity_type 列。 不可为 Null。 MANUAL = 已为至少一个 CPU 设置关联。 AUTO = SQL Server 可以自由地在 CPU 之间移动线程。
|
|
process_kernel_time_ms |
bigint |
内核模式下所有 SQL Server 线程所用的总时间(毫秒)。 该值可能会大于单处理器时钟,因为它包括服务器上所有处理器的时间。 不可为 Null。
|
|
process_user_time_ms |
bigint |
用户模式下所有 SQL Server 线程所用的总时间(毫秒)。 该值可能会大于单处理器时钟,因为它包括服务器上所有处理器的时间。 不可为 Null。
|
|
time_source |
int |
指示 SQL Server 用于检索时钟时间的 API。 不可为 Null。 0 = QUERY_PERFORMANCE_COUNTER 1 = MULTIMEDIA_TIMER
|
|
time_source_desc |
nvarchar(60) |
描述 time_source 列。 不可为 Null。 QUERY_PERFORMANCE_COUNTER = QueryPerformanceCounter API 检索时钟时间。 MULTIMEDIA_TIMER = 检索时钟时间的多媒体计时器 API。
|
|
virtual_machine_type |
int |
指示 SQL Server 是否正在虚拟环境下运行。 不可为 Null。 0 = NONE 1 = HYPERVISOR 2 = OTHER
|
|
virtual_machine_type_desc |
nvarchar(60) |
描述 virtual_machine_type 列。 不可为 Null。 NO = SQL Server 未在虚拟机内运行。 HYPERVISOR = SQL Server 正在某一 hypervisor 内运行,这意味着硬件辅助虚拟化。 如果实例正在宿主操作系统上运行,说明仍将返回 HYPERVISOR。 OTHER = SQL Server 正在某一虚拟机内运行,该虚拟机未采用 Microsoft Virtual PC 之类的硬件助手。
|
权限
要求对服务器拥有 VIEW SERVER STATE 权限。