Sql-Server

所有 XTP_THREAD_POOL 程序都在做什麼?

  • January 8, 2021

我剛剛在sp_who使用MEMORY_OPTIMIZED表的 SQL Server 2016 實例上執行,我看到幾個XTP_THREAD_POOL程序正在執行:

xtp 廢話

有關輸出的其他一些詳細資訊:

  • 結果集中正好有 6XTP_THREAD_POOL

  • 我的系統有兩個邏輯核心

    • 具體來說,它是一個帶有 2 個插槽的虛擬機——每個插槽容納一個 1 核處理器
  • 所有這些任務都作為後台執行 (sa)

這些程序在做什麼?我在 Google 上找不到太多關於此任務名稱的資訊。

射線

實際上,很難獲得有關這些任務的資訊。

文件(為記憶體中 OLTP 創建和管理儲存 -> 可擴展性)說

在 SQL Server 2016 (13.x) 中,有多個並發執行緒負責將更改持久保存到記憶體優化表。

雖然文件沒有提到可能與這些並發執行緒相關的“cmd”值,但Bob Ward 的 PowerPoint連結到上面的文件頁面並添加了有關此過程的更多詳細資訊:

您可能會將這些視為 command =XTP_THREAD_POOLXTP_PREEPMTIVE_TASK

因此,這些任務使記憶體中 OLTP 使用的數據和增量文件保持最新。 他們一直在後台執行。當它們空閒時,它們會進行DISPATCHER_QUEUE_SEMAPHORE等待。


該展示文稿還提到:

池不應大於 # 個邏輯 CPU…

因此,看到其中 6 個程序在 2 個處理器的機器上執行,這有點令人驚訝。這可能是一個錯誤,或者自從 Bob 的 PowerPoint 展示文稿之後事情可能發生了變化。希望有比我更聰明的 Hekaton 的人過來參與進來。

高溫高壓

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