web-dev-qa-db-ja.com

SQL ServerのCPU速度を取得する方法

Glenn Berry から次のクエリを実行すると

-- Hardware information from SQL Server 2016  (Query 18) (Hardware Info)
SELECT cpu_count AS [Logical CPU Count], scheduler_count, hyperthread_ratio AS [Hyperthread Ratio],
cpu_count/hyperthread_ratio AS [Physical CPU Count], 
physical_memory_kb/1024 AS [Physical Memory (MB)], committed_kb/1024 AS [Committed Memory (MB)],
committed_target_kb/1024 AS [Committed Target Memory (MB)],
max_workers_count AS [Max Workers Count], affinity_type_desc AS [Affinity Type], 
sqlserver_start_time AS [SQL Server Start Time], virtual_machine_type_desc AS [Virtual Machine Type], 
softnuma_configuration_desc AS [Soft NUMA Configuration],
sql_memory_model_desc -- New in SQL Server 2016 SP1
FROM sys.dm_os_sys_info WITH (NOLOCK) OPTION (RECOMPILE);
------

enter image description here

powershellを使用すると、詳細が表示されます ですが、 enter image description here

私はpowershellを学ぶことに消極的でしたが、私はすぐにそれを受け入れるつもりです...

一方、問題は次のとおりです。

Sqlサーバーにプロセッサの速度(この場合は2.60 GHz)を確認する方法はありますか?

4

xp_cmdshell、またはxp_regreadxp_regreadは「安全」です(つまり、それを使用するために構成オプションを変更する必要はありません)。次のようなことができます。

DECLARE @cpu_speed_mhz int,
        @cpu_speed_ghz decimal(18,2);

EXEC master.sys.xp_regread @rootkey = 'HKEY_LOCAL_MACHINE',
                            @key = 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',
                            @value_name = '~MHz',
                            @value = @cpu_speed_mhz OUTPUT;

SELECT @cpu_speed_ghz = CAST(CAST(@cpu_speed_mhz AS DECIMAL) / 1000 AS DECIMAL(18,2));

私はこれを数台の異なるコンピューターでテストしましたが、私が必要としているものを手に入れたようです。それもあなたのために働くかもしれません。

覚えておいてくださいxp_regreadは文書化されておらず、Microsoftが何であれ何でも非推奨にするように、何とか何とか何とか何とか何とか何とかなるかもしれません。

お役に立てれば!

10
Erik Darling