Xem nhanh bao nhiêu RAM được phân bổ cho SQL Server?


15

Với SQL Server 2005, bạn có thể nhìn vào Trình quản lý tác vụ và, ít nhất, có được một cái nhìn khó hiểu về lượng bộ nhớ được phân bổ cho SQL Server.

Với SQL Server 2008, Bộ công việc hoặc Kích thước cam kết không bao giờ thực sự vượt quá 500 MB, mặc dù bộ đếm hoàn hảo của SQLServer: Memory Manager / Total Server (KB) đạt 16.732.760.

Có cài đặt nào thực sự hiển thị bộ nhớ máy chủ trong Trình quản lý tác vụ không? Hoặc đó là kết quả của việc họ thay đổi cách sử dụng bộ nhớ trong SQL Server

Câu trả lời:


25

Bạn KHÔNG BAO GIỜ, EVER tin tưởng Trình quản lý tác vụ để cho bạn biết SQL Server đang sử dụng bao nhiêu bộ nhớ (có thể bạn đang nhớ một hệ thống 32 bit với một lượng bộ nhớ rất nhỏ). Ngừng sử dụng Trình quản lý tác vụ cho việc này, giai đoạn. Sử dụng bộ đếm hiệu suất - bạn cũng có thể truy vấn bộ đếm hiệu suất bằng DMV:

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

Bạn có thể lưu nó dưới dạng phím tắt truy vấn trong Công cụ> Tùy chọn> Môi trường> Bàn phím> Phím tắt truy vấn và nhận kết quả chính xác trong cửa sổ truy vấn nhanh hơn nhiều so với nhận kết quả không chính xác từ Trình quản lý tác vụ.

Bạn cũng có thể kiểm tra áp suất bộ nhớ (và liệu bạn có thể làm bất cứ điều gì về nó không) bằng các truy vấn sau:

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';cũng không tồn tại trong SQL 2008
AngryHacker

@AngryHacker Chắc chắn là có (nó được gọi max server memory (MB)nhưng bạn không cần phải nhập toàn bộ). Để xem nó, bạn cần đọc vào thông báo lỗi cho bạn biết về nó là một tùy chọn nâng cao, và sau đó sp_configure 'show adv', 1; reconfigure with override;. Lưu ý rằng bạn cũng không phải gõ tất cả 'show advanced options'ở đây.
Aaron Bertrand

6

Câu trả lời của @ AaronBertrand là tuyệt vời. Đây là một biến thể với một chút thông tin từ đây

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;

Ngoài ra một bài đăng blog tốt về lý do tại sao Trình quản lý tác vụ không hoàn thành nhiệm vụ ở đây .

Và để có hiệu suất cao hơn và ma thuật DMV, bạn không thể lướt qua blog Hiệu suất SQL của Glenn Berry

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.