sys.dm_os_sys_info (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

コンピューターに関するその他の有用な情報と、SQL Server で使用できるリソースと使用されるリソースのセットを返します。

Note

これを 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 Database では、この列は、データベースまたはエラスティック プールをホストしているマシン上の論理 CPU の数を返す場合があります。 データベースまたはエラスティック プールで使用できる論理 CPU の数を確認するには、sys.dm_user_db_resource_governanceの列をcpu_limit使用します。
hyperthread_ratio int 1 つの物理プロセッサ パッケージによって公開される論理コアまたは物理コアの数の比率を指定します。 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 Database では、この列は、データベースまたはエラスティック プールをホストしているマシン上の物理メモリの合計量を返します。 データベースまたはエラスティック プールで使用できる物理メモリの量を確認するには、sys.dm_os_job_objectの列をprocess_memory_limit_mb使用します。
virtual_memory_in_bytes bigint 適用対象: SQL Server 2008 (10.0.x) と SQL Server 2008 R2 (10.50.x)。

ユーザー モードでプロセスで使用できる仮想メモリの量。 この値を使用して、3 GB のスイッチを使用して SQL Server が起動されたかどうかを確認できます。
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 単位 (KB (キロバイト) 単位) で表します。
committed_target_kb bigint 適用対象: SQL Server 2012 (11.x) 以降のバージョン。

SQL Server メモリ マネージャーで使用できるメモリの量を KB 単位 (KB (キロバイト) 単位) で表します。 目標量は、次のようないくつかの入力を使用して計算されます。

- 負荷を含むシステムの現在の状態
- 現在のプロセスによって要求されたメモリ
- コンピューターにインストールされているメモリの量
- 構成パラメーター

よりcommitted_kb大きい場合committed_target_kb、メモリ マネージャーはより多くのメモリを取得しようとします。 これより小committed_kbさい場合committed_target_kb、メモリ マネージャーはコミットされたメモリの量を縮小しようとします。 常 committed_target_kb に、盗難用メモリと予約済みメモリが含まれます。 NULL 値は許可されません。
bpool_visible int 適用対象: SQL Server 2008 (10.0.x) と SQL Server 2008 R2 (10.50.x)。

プロセス仮想アドレス空間で直接アクセスできるバッファー プール内の 8 KB (キロバイト) バッファーの数。 アドレス ウィンドウ拡張 (AWE) を使用しない場合、バッファー プールがそのメモリ ターゲット (bpool_committed = bpool_commit_target) を取得すると、値は bpool_visiblebpool_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 非プリエンプティブ タスクのクォンタムを表します (ミリ秒単位)。 量子 (秒単位) = 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 現在のデッドロック監視シーケンスの ID を指定します。 NULL 値は許可されません。
sqlserver_start_time_ms_ticks bigint SQL Server が最後に開始されたときの ms_tick 番号を表します。 現在 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 Standard Edition RVER CONFIGURATION (Transact-SQL)」を参照してください

1 = MANUAL
2 = AUTO
affinity_type_desc nvarchar(60) 適用対象: SQL Server 2008 R2 (10.50.x) 以降のバージョン。

列について affinity_type 説明します。 NULL 値は許可されません。

MANUAL = 少なくとも 1 つの 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 は、ハイパーバイザーを実行している OS (ハードウェア支援型仮想化を使用するホスト OS) によってホストされている仮想マシン内で実行されています。
OTHER= SQL Server は、Microsoft Virtual PC などのハードウェア アシスタントを使用しない OS によってホストされている仮想マシン内で実行されています。
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 は、ソフト 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 では、サーバーの起動時に SQL Server サービス アカウントに "メモリ内のページのロック" 特権があり、トレース フラグ 834 が有効になっている場合にのみ、Large Pages アロケーターを使用して、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 Managed Instance では、アクセス許可が必要 VIEW SERVER STATE です。

SQL Server 2022 (16.x) とその以降のバージョンでは、サーバーに対する VIEW SERVER PERFORMANCE STATE 権限が必要です。

Azure SQL Database Basic、S0S1 サービス目標、およびエラスティック プール内のデータベースの場合、サーバー管理者アカウント、Microsoft Entra 管理者アカウント、またはサーバー ロール##MS_ServerStateReader##メンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE アクセス許可または ##MS_ServerStateReader## サーバー ロールのメンバーシップのいずれかが必要です。