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

SQL Server 記憶體與緩衝區管理深度技術白皮書

     編輯:關於SqlServer

記憶體配置參數

total memory(頁數)指定啟動時嘗試取得的總記憶體。1 頁 = 2KB。若 OS 支援動態配置,啟動後可追加記憶體。

啟動時記憶體分配順序

  1. SQL Server 執行碼(3-4MB,查 sp_configure 'executable codesize')
  2. 靜態內部結構(核心+伺服器結構,約 2-3MB)
  3. 使用者可配置參數佔用記憶體(連線數、資料庫數、裝置數、物件數、鎖數等,用 sp_configure 逐項查詢)

剩餘記憶體依 procedure cache percent 比例分配:如 20 表 20% 給程序緩衝區、80% 給資料緩衝區。

從錯誤日誌精確掌握緩衝區大小

Server: Number of proc buffers assocated: 556  -- 556KB (每緩衝 76B) → 42256B ≈ 21頁
Server: Number of blocks left for proc headers: 629  -- 629頁
→ 程序緩衝區總計 650頁 ≈ 1.27MB
Server: Memory allocated for the default data cache: 4144kb

若有命名緩衝區,錯誤日誌會逐項列出。亦可用 sp_helpcache 查詢各緩衝區與綁定物件詳情。

調優方向

開發環境可增程序緩衝區;生產環境宜縮減程序緩衝區擴大資料緩衝區。兩緩衝區大小對整體效能影響極大。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved