記憶體過多的缺點
具有大量記憶體(例如幾 TB)的 SQL Server 的缺點是什麼。在 SQL Server 2022 中,有一個稱為並行緩衝池掃描的新功能。這會解決幾 TB 記憶體的所有缺點還是只解決一些缺點?
謝謝
具有大量記憶體(例如幾 TB)的 SQL Server 的缺點是什麼。
這取決於工作負載和應用程序,但總的來說,對於 SQL Server,這裡有一個需要關注的項目列表:
- 程序記憶體互斥體變熱(特定於 Windows)
- 堆序列化變熱(特定於 Windows)
- 具有硬體佈局的 NUMA 位置
- 任何需要核心轉儲的東西
- 3rd 方應用程序(例如驅動程序、安全性或基礎設施使用)
SQL 可能出現的特定問題:
- 需要緩衝池掃描的操作(檢查點、刪除數據庫/文件、備份、還原、某些 AG 相關項目)
- 需要針對記憶體使用進行調整的查詢(頻繁分配/解除分配)
- 任何外部的(搶占式)
- 第 3 方庫
- 任何需要使用模式轉儲的東西
- 3rd 方應用程序(例如,使用 VirtaulAlloc 的審核應用程序)
在 SQL Server 2022 中,有一個稱為並行緩衝池掃描的新功能。這會解決幾 TB 記憶體的所有缺點還是只解決一些缺點?
這將在各種情況下有所幫助,但您的里程會因各種因素而異。顯然,任何被並行化的東西都會使用更多的計算資源,如果這些資源存在那就太好了……但如果不存在,它可能會導致其他問題。
就核心數、記憶體和數據而言,您見過的最大的 SQL Server 是什麼?
在一份工作中,我管理了幾台 SQL Server,每台都有數據庫,總計有幾 TB 的數據。其中一個數據庫中最大的單個表本身大約有 1 TB 大,其中有幾十億行。這些伺服器配備了 8 個 CPU 核心和 16 GB 記憶體。最終我們將記憶體增加到 32 GB。
信不信由你,這對於伺服器的案例來說已經足夠了。大多數數據是歷史數據,大多數案例只需要在任何給定時間(按日期範圍)讀取一小部分數據。正確建構和索引的表,以及主要使用索引查找的精心設計的查詢是關鍵。對於一些跨越大量數據的分析案例,列儲存索引非常適合。
具有大量記憶體(例如幾 TB)的 SQL Server 的缺點是什麼。SQL Server 2022 中新增了並行緩衝池掃描功能。這會解決幾 TB 記憶體的所有缺點還是只解決一些缺點?
據我所知,我認為沒有,儘管我從來沒有使用過具有 TB 級記憶體案例的伺服器。從閱讀並行緩衝池掃描的特性來看,這聽起來像是一種改進,可以更快地掃描記憶體中的大量數據。但我不會說這意味著沒有它大量的記憶體本質上是一個問題。掃描大量數據是個問題,在記憶體中掃描通常比在磁碟上掃描要快。但 TB 級數據的掃描速度仍然存在限制,因此聽起來這項新功能改善了這一限制。