SQL Serverに割り当てられるRAMの量を簡単に確認しますか?


15

SQL Server 2005では、タスクマネージャーを確認し、少なくともSQL Serverに割り当てられているメモリ量を大まかに確認できます。

SQL Server 2008では、SQLServer:Memory Manager / Total Server Memory(KB)perfカウンターが16,732,760を示していても、ワーキングセットまたはコミットサイズが実際に500 MBを超えることはありません。

タスクマネージャで実際にサーバーメモリを表示する設定はありますか?または、SQL Serverでメモリの使用方法を変更した結果ですか

回答:


25

タスクマネージャーを信頼して、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';

EXEC sp_configure 'max server memory';また、SQL 2008に存在しません
AngryHacker

@AngryHacker確かにそうです(呼び出されmax server memory (MB)ますが、すべてを入力する必要はありません)。それを見るために、あなたはそれが高度なオプションであることをあなたに伝えるエラーメッセージを読む必要がありますsp_configure 'show adv', 1; reconfigure with override;'show advanced options'ここにもすべてを入力する必要はありません。
アーロンバートランド

6

@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がここでのタスクに対応していない理由に関する優れたブログ投稿もあります

そして、パフォーマンスとDMVマジックを強化するには、グレンベリーのSQLパフォーマンスブログを通過することはできません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.