[SQL Server][DMV]新的sys.dm_os_host_info主機資訊(SQL Server 2017)

以往我們想要知道SQL Server裝在哪一個版本的O/S,這個時候打個電話請教SP,厲害的SP就會很快找到,然後精準的回覆我們O/S和DB的Version、Edition,甚至還會補充硬體資源的配置;但如果SP很忙,又沒有rdp權限時,以前我們會串SQL查dmv解決(dm_os_windows_info),今年SQL Server 2017多了新的DMV:dm_os_host_info 能同時提供 Windows 和 Linux 作業系統資訊,快來試試。

 

查詢目前主機資源配置、O/S版本及DB版本資訊: 

透過DMV: sys.dm_os_sys_info、 sys.dm_os_windows_info查詢

--infra
SELECT cpu_count
,physical_memory_kb
,sqlserver_start_time
from sys.dm_os_sys_info  --SQL Server (starting with 2008)
--o/s
SELECT * from sys.dm_os_windows_info --SQL Server (starting with 2008)
--db
SELECT
 LEFT(@@VERSION, CHARINDEX('-', @@VERSION)-1) N'DB Version' , 
 SERVERPROPERTY('Edition') N'Edition',
 SERVERPROPERTY('ProductVersion') N'ProductVersion',
 SERVERPROPERTY('ProductLevel') N'ProductLevel',
 DATABASEPROPERTYEX('master','Version') N'Version'

 

以史丹利筆電為例:

8 Core,16GB Ram,Win 8 professional,SQL Server 2014 Developer Edition

 

這幾年SQL Server變的厲害,2015、2016 先後在Gartner Magic Quadrant操作類資料庫報告中取代Oracle拿下冠軍 ,春風得意的他,2017果然變心愛上Linux,從SQL 2008就跟著單身漢奮鬥的dm_os_windows_info顯得有點門當戶不對,只好在SQL On Linux環境執行時出現了國防部的黑畫面作無聲的抗議。

 

Linux環境查詢dm_os_windows_info

SELECT * from sys.dm_os_windows_info --SQL Server (starting with 2008)

為了排解家庭糾紛,SQL Server多了一個新的dmv:dm_os_host_info,來筆記新人,還有(dm_os_sys_info)的欄位增加。

 


SQL Server 2017 dm_os_host_info

用dm_os_host_info替換dm_os_windows_info

--infra
SELECT cpu_count
,physical_memory_kb
,sqlserver_start_time
from sys.dm_os_sys_info  --SQL Server (starting with 2008)
--o/s
SELECT * from sys.dm_os_host_info --SQL Server (starting with 2008)
--db
SELECT
 LEFT(@@VERSION, CHARINDEX('-', @@VERSION)-1) N'DB Version' , 
 SERVERPROPERTY('Edition') N'Edition',
 SERVERPROPERTY('ProductVersion') N'ProductVersion',
 SERVERPROPERTY('ProductLevel') N'ProductLevel',
 DATABASEPROPERTYEX('master','Version') N'Version'

 

Linux O/S的資訊很清楚的呈現!也包含發散版本資訊編號7.3。

切到Windows環境執行,資訊也能完整呈現,版本編號6.2。

host_release

  • 10是Windows 10或Windows Server 2016
  • 6.3是Windows 8.1或Windows Server 2012 R2
  • 6.2是Windows 8或Windows Server 2012

host_sku(editions)

  • 4 =企業版(Enterprise)
  • 7 =標準服務器版(Standard)
  • 8 =數據中心服務器版(Data Center)
  • 48 =專業版(Professional)

 


dm_os_sys_info增加欄位

取得infra資訊時,多選了3個欄位

  • sql_memory_model_desc: 記憶體的使用模式(通常希望SP幫我們設定LOCK_PAGES)(SQL2016SP1)
  • cores_per_socket : 每顆CPU有幾核心(SQL2017)。
  • socket_count: 幾顆CPU(SQL2017)。
--infra
SELECT cpu_count
,physical_memory_kb
,sqlserver_start_time
,sql_memory_model_desc
,cores_per_socket
,socket_count
from sys.dm_os_sys_info  

 

執行結果:

 


小結

魔力象限magic quadrant

magic quadrant for operational database management systems

 

magic quadrant for business intelligence and analytics platforms

寫完了,來去跑個10km。芝加哥馬拉松剩20天。

 


參考: 

sys.dm_os_host_info (Transact-SQL)

sys.dm_os_sys_info (Transact-SQL)

sys.dm_os_windows_info (Transact-SQL)

Windows Operating System Version