回答:
そのサーバーの唯一の目的がMSSQLのみを提供することである場合でも、MSSQLの最大RAMを手動で制限しますか?
ここにSQL Server 2012があることを考えると、これは少し議論の余地のあるトピックです。Windows Server 2003/2008にあったSQL Server 2005/2008について同じ質問をした場合、Windowsオペレーティングシステム(2003/2008)にあったバグのため、サーバーの最大メモリ制限を設定することを強くお勧めします。しかし、メモリ構成とOSパフォーマンスはそれぞれSQL Server 2012以降とWindow Server 2008/2012 r2以降で大幅に変化しました。私の意見を聞くと、You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.
MSエンジニアにこれについて尋ねると、SQL Serverはメモリを適切に管理するようにコード化されているとも言えます。それ自体と、SQLデータベースエンジン専用のシステムがある場合は、SQL Serverの最大サーバーメモリをデフォルトのSQL Serverに任せて、効率的に管理できます。
とにかく、まだ設定したい場合は、このSEスレッドで与えられた同様の質問と回答を読むことができます
最大サーバーメモリが必要な状況があります。このSEスレッドで概要を説明しました
次に、このWindowsサーバーでNUMAが有効になっているかどうかをどのように確認しますか?
少し検索すると、このBlogs.msdnの記事が表示されます。SQL ServerがNUMA対応で使用している場合は、さまざまな図による説明があります。
SQLはNUMA
認識しているためNUMA
、クエリを使用して情報を見つけることができます。このクエリを使用しNUMA
て、ノードの数と、どのCPUとコアがどのノードに割り当てられているかを確認することもできますNUMA
。
SELECT parent_node_id, scheduler_id, cpu_id
FROM sys.dm_os_schedulers WITH (NOLOCK)
WHERE [status] = N'VISIBLE ONLINE';
またはちょうどいくつNUMA
:
select COUNT(distinct Parent_node_id)
from sys.dm_os_schedulers
where [STATUS] = 'VISIBLE ONLINE'
and Parent_node_ID < 64