SQL Server 2005を使用すると、タスクマネージャを確認し、少なくとも、SQL Serverに割り当てられているメモリの量を簡単に確認できます。
SQL Server 2008では、SQLServer:Memory Manager/Total Server Memory(KB)パフォーマンスカウンターに16,732,760と表示されていても、ワーキングセットまたはコミットサイズが500 MBを超えることはありません。
タスクマネージャーでサーバーメモリを実際に表示する設定はありますか?または、SQL Serverでのメモリの使用方法を変更した結果ですか
タスクマネージャーを信頼して、SQL Serverが使用しているメモリ量を通知することは絶対にありません(おそらく、ごく少量のメモリを搭載した32ビットシステムを覚えているでしょう)。この期間、タスクマネージャの使用を停止します。パフォーマンスカウンターを使用する-DMVを使用してパフォーマンスカウンターをクエリすることもできます。
SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Total Server Memory (KB)';
これをクエリショートカットとして[ツール]> [オプション]> [環境]> [キーボード]> [クエリショートカット]に保存すると、タスクマネージャーから不正確な結果を取得するよりもはるかに速く、クエリウィンドウで正確な結果を取得できます。
また、次のクエリを使用して、メモリの負荷をチェックすることもできます(そしてそれに対して何かできるかどうかも確認できます)。
SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');
-- SQL Server 2012:
SELECT physical_memory_kb FROM sys.dm_os_sys_info;
-- Prior versions:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;
EXEC sp_configure 'max server memory';
@AaronBertrandの答えは素晴らしいです。 ここ からのより多くの情報を持つバリエーションがあります
SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;
また、TaskManagerがタスクを実行できない理由についての優れたブログ投稿 here もご覧ください。
そして、より多くのパフォーマンスとDMVマジックを実現するには、先に進むことはできません Glenn BerryのSQLパフォーマンスブログ