Sql-Server
填滿計劃記憶體是否會導致分配給數據記憶體的空間減少?
SQL Server 將分配的伺服器記憶體用於不同的目的。其中兩個是計劃記憶體和數據記憶體,分別用於儲存執行計劃和實際數據。
我的問題:這兩個記憶體在緩衝池中是否有不同的分配空間部分,或者相反,它們在緩衝池中只有一個部分相互共享?
換句話說,如果計劃記憶體被填滿,數據記憶體的空間是否也在減少?
是的。計劃記憶體和頁面記憶體共享可用的伺服器記憶體。計劃記憶體有上限,因為增加大型計劃記憶體很少能提供太多邊際收益。
AFAIK,這個舊文件頁面仍然準確:
分配給計劃記憶體的記憶體
SQL Server 使用的大部分記憶體都分配給緩衝池,用於儲存數據頁。SQL Server 會竊取一部分記憶體用於記憶體查詢計劃。
記憶體壓力限制 SQL Server 2008 和 SQL Server 2005 SP2
$$ and later $$
75% 的可見目標記憶體從 0-4GB + 10% 的可見目標記憶體從 4Gb-64GB + 5% 的可見目標記憶體 > 64GB
這意味著計劃記憶體將在超過該目標時被修剪,從而有效地限制用於計劃記憶體的記憶體量。