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