資源調控器是否有助於保護頁面預期壽命?
我有幾個大表需要復製到事務數據庫上的分區副本中。
我擔心這會對我的生產應用程序的性能造成影響。
為了緩解這種情況,我正在研究資源管理器。我將設置我的腳本以使用限制為最大 5% CPU 和記憶體的資源池。
我不確定的唯一部分是對 PLE 的影響。
據我了解,表中的選擇會將值讀入記憶體。這將強制清除記憶體中的其他內容。(PLE的基本概念。)但是“強制退出”的項目會限制在我指定的5%嗎?
意思是在我使用了 5% 的記憶體之後,它只會強制刪除相同 5% 中的記憶體項目嗎?(其他 95% 不受影響。)
問這個問題的另一種方式是:5% 的記憶體限制與 5% 的記憶體限制相同嗎?
此 MSDN 頁面聲明記憶體設置僅影響查詢記憶體:
MIN_MEMORY_PERCENT 和 MAX_MEMORY_PERCENT
這些設置是為資源池保留的不能與其他資源池共享的最小和最大記憶體量。這裡引用的記憶體是查詢執行授權記憶體,而不是緩衝池記憶體(例如,數據和索引頁)。為池設置最小記憶體值意味著您確保指定的記憶體百分比可用於可能在此資源池中執行的任何請求。與 MIN_CPU_PERCENT 相比,這是一個重要的區別,因為在這種情況下,即使該池在屬於該池的工作負載組中沒有任何請求,記憶體也可能保留在給定的資源池中。因此,在使用此設置時非常小心至關重要,因為即使沒有活動請求,該記憶體也將無法供任何其他池使用。
以上表明緩衝池被排除在資源池限制之外。因此,如果您打算執行一些可能導致整個緩衝池被清空以執行您的程序的操作,您可能希望確保該程序在非工作時間執行。
以下是 MSDN 部落格SQL Server Page Life Expectancy的摘錄:
頁面預期壽命 (PLE) 是緩衝池 (BP) 波動性的最佳指標。它是一個 PerfMon 計數器,可在 SQL Server:Buffer Manager PerfMon 對像中找到。還有一個 Buffer Node:Page Life Expectancy 計數器,應該為 NUMA 系統考慮,每個節點使用與非 NUMA 系統上相同的邏輯。
波動性是通過獲取緩衝池中頁面的平均“壽命”(以秒為單位)來衡量的。如果一個頁面被覆蓋或老化,它就會開始一個全新的生活。
因此,如果很多頁面經常被新數據覆蓋,平均 PLE 會很低,我們的 BP 波動性會很高。
反之,如果我們的 BP 中的大多數頁面長時間保留在那里而不被覆蓋,則平均 PLE 會很高,BP 波動性會很低。
那麼我們為什麼要關心 BP 波動性和 PLE 呢?知道 BP 的波動性能為我們做什麼?什麼是“好”和“壞”的 PLE 數據?
PLE 可以衡量您的 SQL Server 正在執行多少物理 IO。希望我引起了您的注意,因為物理 IO 是讀取和寫入的主要性能問題。
從這裡評論中的問題:
什麼是“查詢記憶體”,它與記憶體有何不同?
查詢記憶體用於執行查詢。它暫時用於排序、點陣圖創建、雜湊表等。記憶體包含記憶體中的表數據。
聽起來我的問題的答案是 PLE 根本不受資源管理器的保護。聽起來對嗎?
正確的。頁面預期壽命是關於數據頁面在記憶體中保留多長時間。