Lihat sekilas berapa banyak RAM yang dialokasikan untuk SQL Server?

15

Dengan SQL Server 2005, Anda bisa melihat Task Manager dan, setidaknya, melihat sekilas berapa banyak memori yang dialokasikan untuk SQL Server.

Dengan SQL Server 2008, Working Set atau Commit Size tidak pernah benar-benar melampaui 500 MB, meskipun SQLServer: Memory Manager / Total Server Memory (KB) counter perf menyatakan 16.732.760.

Apakah ada pengaturan di mana ia benar-benar akan menampilkan memori server di Task Manager? Atau apakah itu akibat dari mereka mengubah cara memori digunakan dalam SQL Server

AngryHacker
sumber

Jawaban:

25

Anda TIDAK PERNAH, PERNAH mempercayai Task Manager untuk memberi tahu Anda berapa banyak memori yang digunakan SQL Server (mungkin Anda mengingat sistem 32-bit dengan jumlah memori yang sangat kecil). Berhenti menggunakan Task Manager untuk ini, titik. Gunakan penghitung kinerja - Anda juga dapat meminta penghitung kinerja menggunakan DMV:

SELECT object_name, cntr_value 
  FROM sys.dm_os_performance_counters
  WHERE counter_name = 'Total Server Memory (KB)';

Anda bisa menyimpannya sebagai pintasan kueri di Alat> Opsi> Lingkungan> Keyboard> Pintasan Kueri, dan mendapatkan hasil yang akurat di jendela kueri jauh lebih cepat daripada mendapatkan hasil yang tidak akurat dari Task Manager.

Anda juga dapat memeriksa tekanan memori (dan apakah Anda dapat melakukan sesuatu tentang hal itu) menggunakan pertanyaan ini:

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';
Aaron Bertrand
sumber
EXEC sp_configure 'max server memory';juga tidak ada di SQL 2008.
AngryHacker
@ AngryHacker Tentu saja (itu dipanggil max server memory (MB)tetapi Anda tidak perlu mengetik semuanya). Untuk melihatnya, Anda perlu membaca pesan kesalahan yang memberitahu Anda bahwa itu adalah opsi lanjutan, dan kemudian sp_configure 'show adv', 1; reconfigure with override;. Perhatikan bahwa Anda tidak harus mengetik semuanya di 'show advanced options'sini.
Aaron Bertrand
6

@ AaronBertrand jawabannya bagus. Berikut variasi dengan sedikit lebih banyak info dari sini

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;

Juga posting blog yang bagus tentang mengapa TaskManager tidak sesuai dengan tugas di sini .

Dan untuk kinerja lebih dan sihir DMV Anda tidak bisa melewati blog SQL Performance Glenn Berry

Rory
sumber