web-dev-qa-db-ja.com

構成RAM

偶発的なDB管理者はこちら。

質問:

SQL Serverの唯一の目的がSQL Serverデータベースエンジンのみを提供することである場合でも、SQL Serverの最大値RAM=を手動で制限しますか?

Microsoft Windows 2012 R2 Server、SQL Server 2012 Std、32GB RAMを使用しています。

管理者は常にSQL Serverにログインして、そのコンソールなどを使用します。

次に、このWindowsサーバーでNUMAが有効になっているかどうかをどのように確認しますか?

10
volantis

そのサーバーの唯一の目的は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対応で使用している場合は、さまざまな図による説明があります。

9
Shanky

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
2
hpk89