Sql-Server

填滿計劃記憶體是否會導致分配給數據記憶體的空間減少?

  • May 26, 2020

SQL Server 將分配的伺服器記憶體用於不同的目的。其中兩個是計劃記憶體和數據記憶體,分別用於儲存執行計劃和實際數據。

我的問題:這兩個記憶體在緩衝池中是否有不同的分配空間部分,或者相反,它們在緩衝池中只有一個部分相互共享?

換句話說,如果計劃記憶體被填滿,數據記憶體的空間是否也在減少?

是的。計劃記憶體和頁面記憶體共享可用的伺服器記憶體。計劃記憶體有上限,因為增加大型計劃記憶體很少能提供太多邊際收益。

AFAIK,這個舊文件頁面仍然準確:

分配給計劃記憶體的記憶體

SQL Server 使用的大部分記憶體都分配給緩衝池,用於儲存數據頁。SQL Server 會竊取一部分記憶體用於記憶體查詢計劃。

記憶體壓力限制 SQL Server 2008 和 SQL Server 2005 SP2

$$ and later $$

75% 的可見目標記憶體從 0-4GB + 10% 的可見目標記憶體從 4Gb-64GB + 5% 的可見目標記憶體 > 64GB

這意味著計劃記憶體將在超過該目標時被修剪,從而有效地限制用於計劃記憶體的記憶體量。

SQL Server 2008 中的計劃記憶體

引用自:https://dba.stackexchange.com/questions/267922