虛擬內存(頁面文件)是物理內存不足時的磁盤緩衝區。SQL Server 作為內存敏感應用,配置原則:
max server memory 限制EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 物理內存_GB * 1024 * 0.75; -- 留 25% 給 OS/其他
RECONFIGURE;
max server memory 設置為 物理內存的 50%(即虛擬內存 3× 的一半),其餘留給 OS、全文過濾器守護進程、文件系統緩存。Lock Pages in Memory 特權),動態頁面文件干擾鎖定邏輯。-T845)或 SQL 2016+ 自動嘗試鎖定。-- 1. SQL Server 內存使用
SELECT
physical_memory_in_use_kb/1024 AS sql_mem_mb,
locked_page_allocations_kb/1024 AS locked_mem_mb,
virtual_address_space_reserved_kb/1024 AS vmem_reserved_mb
FROM sys.dm_os_process_memory;
-- 2. 系統分頁活動
-- 性能監視器:Memory\Pages/sec、Paging File\% Usage、Process(sqlservr)\Working Set
-- 3. 緩衝池命中率
SELECT
(1 - (SELECT cntr_value FROM sys.dm_os_performance_counters WHERE counter_name = 'Page reads/sec') * 1.0 /
NULLIF((SELECT cntr_value FROM sys.dm_os_performance_counters WHERE counter_name = 'Page lookups/sec'),0)
) * 100 AS buffer_cache_hit_ratio;
虛擬內存不是「備用內存」,而是「防止崩潰的安全閥」。科學配置 = 固定大小 1.5~3× 物理內存 + max server memory 留 25~50% 給 OS + 啟用 Lock Pages in Memory,三位一體才能穩住 SQL Server 內存王國。