首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2008 記憶體架構與效能監控深度解析

     編輯:關於SqlServer

核心記憶體概念(32 位元環境)

使用者模式 vs 核心模式

Windows 採用兩種處理器存取模式保護系統穩定:

  • 核心模式:作業系統核心程式碼、驅動程式,擁有完整記憶體與硬體存取權
  • 使用者模式:應用程式(含 SQL Server),權限受限,透過系統呼叫存取資源

虛擬位址空間 (VAS) 配置

32 位元系統的 4GB 限制

CPU 位址線 32 位,最大尋址 4GB。即使裝 64GB 實體記憶體,32 位元 OS 僅能使用 4GB。

突破 2GB 使用者空間限制

/3GB 開關

調整核心/使用者空間比例為 1GB / 3GB,讓 SQL Server 多獲得 1GB VAS。

Boot.ini 範例:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003" /3GB

Windows Server 2008+ 使用 BCDEdit

bcdedit /set IncreaseUserVa 3072

物理位址擴展 (PAE) 與 AWE

PAE 讓 32 位元 CPU 支援高達 64GB 實體記憶體。SQL Server 需啟用 AWE (Address Windowing Extensions) 才能利用 4GB 以上記憶體:

sp_configure 'show advanced options', 1; RECONFIGURE;
sp_configure 'awe enabled', 1; RECONFIGURE;

啟用 AWE 後,SQL Server 可將資料頁面映射到 4GB 以上的實體記憶體,但程式碼、計畫快取仍限於 VAS 內。

64 位元環境優勢

  • VAS 高達 8TB (SQL Server 2008 R2: 8TB),徹底解決記憶體壓力
  • 無需 /3GB、PAE、AWE 等複雜配置
  • 原生支援大記憶體頁面 (Large Pages)

監控關鍵指標

區域位址範圍大小用途
使用者空間0x00000000 ~ 0x7FFFFFFF2 GBSQL Server 進程私有空間
核心空間0x80000000 ~ 0xFFFFFFFF2 GB作業系統核心、驅動、PTE
計數器建議閾值說明
SQLServer:Memory Manager\Target Server Memory-SQL Server 目標記憶體
SQLServer:Memory Manager\Total Server Memory接近 Target實際使用記憶體
Process\Working Set\_Total-實體記憶體工作集
Memory\Available MBytes> 500 MB系統可用記憶體
SQLServer:Buffer Manager\Page Life Expectancy> 300 秒資料頁面存活期望
SQLServer:Buffer Manager\Lazy Writes/sec< 20緩衝區寫入磁碟頻率

常見問題診斷

  • 記憶體壓力:PLE 持續偏低、Lazy Writes 高、編譯/重編譯頻繁
  • 外部壓力:Available MBytes 過低、其他進程佔用大量記憶體
  • 計畫快取膨脹:單用計畫過多,考慮 OPTIMIZE FOR AD HOC WORKLOADS
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved