sys.dm_os_sys_info (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回計算機的相關其他實用資訊集,以及 SQL Server 可用和取用的資源。

注意

若要從 Azure Synapse Analytics 或 Analytics Platform System (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)。

使用者模式中進程可用的虛擬記憶體數量。 這個值可用來判斷 SQL Server 是否使用 3 GB 交換器啟動。
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 緩衝區數目。 當不使用 Address Windowing Extensions (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,以毫秒為單位。 Quantum (以秒為單位) = 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)。

如需詳細資訊,請參閱 設定優先順序提升 (伺服器組態選項)
max_workers_count int 代表可以建立的背景工作角色數目上限。 不可為 Null。
scheduler_count int 表示在 SQL Server 進程中設定的使用者排程器數目。 不可為 Null。
scheduler_total_count int 代表 SQL Server 中的排程器總數。 不可為 Null。
deadlock_monitor_serial_number int 指定目前死結監視器序列的識別碼。 不可為 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 正在由執行 Hypervisor 的 OS 所裝載的虛擬機內執行(採用硬體輔助虛擬化的主機 OS)。
OTHER = SQL Server 是在操作系統所裝載的虛擬機內執行,該虛擬機不會採用硬體助理,例如 Microsoft 虛擬電腦。
softnuma_configuration int 適用於:SQL Server 2016 (13.x) 和更新版本。

指定 NUMA 節點的設定方式。 不可為 Null。

0 = OFF 表示硬體預設值
1 = 自動化軟體 NUMA
2 = 透過登錄手動軟 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 資料庫 Basic、S0 和 S1 服務目標上,以及彈性集區中的資料庫,需要伺服器管理員帳戶、Microsoft Entra 系統管理員帳戶或伺服器角色的成員##MS_ServerStateReader##資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE 權限或 ##MS_ServerStateReader## 伺服器角色的成員資格。