Sql-Server

記憶體過多的缺點

  • August 8, 2022

具有大量記憶體(例如幾 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 級數據的掃描速度仍然存在限制,因此聽起來這項新功能改善了這一限制。

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