SQL Server では、Windows によって公開されるハードウェア NUMA 境界に基づいて、スケジューラがグループ化され、CPU のグループにマップされます。たとえば、CPU を 4 基ずつ備えたノード 4 つから 16 ウェイのコンピュータを構成できます。この構成により、ノードでのタスク処理時に、スケジューラのそのグループに対するメモリ局所性が高まります。SQL Server では、あるハードウェア NUMA ノードに属する CPU を複数の CPU ノードに再分割できます。この再分割をソフト NUMA といいます。CPU の再分割は、CPU ノード間で作業をパーティションに分割するために行われるのが一般的です。ソフト NUMA の詳細については、「Non-Uniform Memory Access について」を参照してください。
特定のハードウェア NUMA ノードで実行中のスレッドからメモリを割り当てるとき、SQL Server のメモリ マネージャは参照の局所性を得るために、その NUMA ノードに属するメモリから割り当てます。同様に、バッファ プール ページがハードウェア NUMA ノード間に分散されます。スレッドからメモリにアクセスするときは、ローカル メモリに割り当てられたバッファ ページのメモリにアクセスする方が、外部メモリにアクセスするよりも効率的です。詳細については、「NUMA 環境下でのバッファ プールの拡張と縮小」を参照してください。
各 NUMA ノード (ハードウェア NUMA またはソフト NUMA) には、ネットワーク I/O の処理に使用する I/O 完了ポートが関連付けられています。このしくみを利用して、ネットワーク I/O 処理が複数のポート間に分散されます。SQL Server にクライアント接続が確立されると、ノードの 1 つに接続がバインドされます。そのクライアントからのすべてのバッチ要求はそのノードで処理されます。
SQL Server インスタンスが NUMA 環境で起動されるたびに、SQL エラー ログには NUMA 構成について説明する情報メッセージが記録されます。