Josh Darnell Asked: 2018-07-17 12:17:47 +0800 CST2018-07-17 12:17:47 +0800 CST 2018-07-17 12:17:47 +0800 CST 所有 XTP_THREAD_POOL 进程都在做什么? 772 我刚刚在sp_who使用MEMORY_OPTIMIZED表的 SQL Server 2016 实例上运行,我看到几个XTP_THREAD_POOL进程正在运行: 有关输出的其他一些详细信息: 结果集中正好有 6XTP_THREAD_POOL行 我的系统有两个逻辑核心 具体来说,它是一个带有 2 个插槽的虚拟机——每个插槽容纳一个 1 核处理器 所有这些任务都作为后台运行 (sa) 这些进程在做什么?我在 Google 上找不到太多关于此任务名称的信息。 TIA sql-server sql-server-2016 2 个回答 Voted Best Answer Josh Darnell 2018-07-17T12:17:47+08:002018-07-17T12:17:47+08:00 实际上,很难获得有关这些任务的信息。 文档(为内存中 OLTP 创建和管理存储 -> 可扩展性)说 在 SQL Server 2016 (13.x) 中,有多个并发线程负责将更改持久保存到内存优化表。 虽然文档没有提到可能与这些并发线程相关的“cmd”值,但Bob Ward 的 PowerPoint链接到上面的文档页面并添加了有关此过程的更多详细信息: 您可能会将这些视为 command =XTP_THREAD_POOL或XTP_PREEPMTIVE_TASK 因此,这些任务使内存中 OLTP 使用的数据和增量文件保持最新。 他们一直在后台运行。当它们空闲时,它们会进行DISPATCHER_QUEUE_SEMAPHORE等待。 该演示文稿还提到: 池不应大于 # 个逻辑 CPU... 因此,看到其中 6 个进程在 2 个处理器的机器上运行,这有点令人惊讶。这可能是一个错误,或者自从 Bob 的 PowerPoint 演示文稿之后事情可能发生了变化。希望有比我更聪明的 Hekaton 的人过来参与进来。 高温高压 TXPJL 2021-01-08T08:11:41+08:002021-01-08T08:11:41+08:00 我正在使用 SQL 2019 并注意到这些 XTP_THREAD_POOL cmd 线程在我使用 Studio Manager (SSMS) 并使用用户数据库时出现。 select Hostname, program_name, db_name(dbid) AS 'Database', * FROM master..sysprocesses WHERE spid >50 显示这些新线程。除非 2019 年启用了此功能,否则我不会使用内存索引或其他任何东西。 SQL 2019 CU 08 显示了 cmd 线程。 SQL 2019 CU 05 没有。
实际上,很难获得有关这些任务的信息。
文档(为内存中 OLTP 创建和管理存储 -> 可扩展性)说
虽然文档没有提到可能与这些并发线程相关的“cmd”值,但Bob Ward 的 PowerPoint链接到上面的文档页面并添加了有关此过程的更多详细信息:
因此,这些任务使内存中 OLTP 使用的数据和增量文件保持最新。 他们一直在后台运行。当它们空闲时,它们会进行DISPATCHER_QUEUE_SEMAPHORE等待。
该演示文稿还提到:
因此,看到其中 6 个进程在 2 个处理器的机器上运行,这有点令人惊讶。这可能是一个错误,或者自从 Bob 的 PowerPoint 演示文稿之后事情可能发生了变化。希望有比我更聪明的 Hekaton 的人过来参与进来。
高温高压
我正在使用 SQL 2019 并注意到这些 XTP_THREAD_POOL cmd 线程在我使用 Studio Manager (SSMS) 并使用用户数据库时出现。
显示这些新线程。除非 2019 年启用了此功能,否则我不会使用内存索引或其他任何东西。
SQL 2019 CU 08 显示了 cmd 线程。
SQL 2019 CU 05 没有。