偶発的なDB管理者はこちら。
質問:
SQL Serverの唯一の目的がSQL Serverデータベースエンジンのみを提供することである場合でも、SQL Serverの最大値RAM=を手動で制限しますか?
Microsoft Windows 2012 R2 Server、SQL Server 2012 Std、32GB RAMを使用しています。
管理者は常にSQL Serverにログインして、そのコンソールなどを使用します。
次に、このWindowsサーバーでNUMAが有効になっているかどうかをどのように確認しますか?
そのサーバーの唯一の目的は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のままにしておくと、効率的に管理できます。
とにかく、まだ設定したい場合は、似たような質問と回答を読むことができます this SE Thread
最大サーバーメモリが必要な状況があります このSEスレッド
次に、このWindowsサーバーでNUMAが有効になっているかどうかをどのように確認しますか?
少し検索すると、この Blogs.msdn 記事が表示されます。 SQL ServerがNUMA対応で使用している場合は、さまざまな図による説明があります。
SQLはNUMA
対応なので、クエリを使用してNUMA
情報を見つけることができます。このクエリを使用して、所有しているNUMA
ノードの数と、どのNUMA
に割り当てられているCPUとコアを確認することもできます。
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