共用方式為


In-Memory OLTP 垃圾回收

如果數據列已由不再使用中的交易刪除,則會將其視為過時。 過時的數據列符合垃圾收集的資格。 以下是 In-Memory OLTP 中垃圾收集的特性:

  • 非封鎖。 垃圾收集會隨著時間分散,對工作負載的影響最小。

  • 合作社。 使用者交易會與主要垃圾收集執行緒一起參與垃圾收集。

  • 有效。 使用者交易會取消連結存取路徑中過時的數據列(索引)。 這可減少數據列最終移除時所需的工作。

  • 回應。 記憶體壓力會導致加速的垃圾回收。

  • 可伸縮。 提交之後,使用者交易會執行部分垃圾收集的工作。 交易活動越多,交易就越會解除過時數據列的連結。

垃圾收集是由主要垃圾收集執行緒所控制。 主要垃圾收集線程會每分鐘執行一次,或當認可的交易數目超過內部閾值時。 垃圾收集器的工作是:

在使用者交易認可之後,它會識別與其執行之排程器相關聯的所有佇列專案,然後釋放記憶體。 如果排程器上的垃圾收集佇列是空的,它會搜尋目前 NUMA 節點中的任何非空白佇列。 如果交易活動較低且記憶體不足,主要垃圾收集線程可以從任何佇列存取垃圾收集數據列。 如果在 (例如) 刪除大量數據列之後沒有交易式活動,而且沒有記憶體壓力,則在交易活動繼續或記憶體壓力之前,刪除的數據列將不會進行垃圾收集。

另請參閱

管理內存 OLTP 的記憶體