我正在处理包含2500万行的表的全文索引,并希望加快速度。根据{{3}}文章(第5点),可以在完整版的SQL Server中编辑一些注册表项:
增加索引过程的线程数 增加您为索引运行的线程数 处理。默认值只有五个,你可以使用四边形或八边形 将其提高到更高的值。但是,MSSearch会扼杀 如果它从SQL Server中榨出太多数据,那么就避免这样做 这适用于单处理器或双处理器系统。
这些是相关的注册表条目:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Search \ 1.0 \ Gathering 经理\服务器\ SQLServer的\ EvaluationOrder HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Search \ 1.0 \ Gathering 管理器\服务器\ SQLServer的\ HitInterval
当然,我们无法访问Azure SQL数据库中的注册表,还有其他方法吗?也许通过执行系统查询?
答案 0 :(得分:0)
如果引用的注册表设置与SQL Server FTI(全文索引)线程数相关,我有疑问。关键位置本身与MSSearch(使用FTI的应用程序)有关,文章本身并没有解释应该使用什么值,并且键的名称似乎并不真正对应于线程。最后但并非最不重要的是,它们没有正式记录,文章是从2004年6月开始的。
Improve the Performance of Full-Text Indexes有更多相关信息。 sp_configure' max全文抓取范围'可用于将所有CPU处理器或内核分配给FTI。但是,Azure上尚未提供此选项,例如,为SQL Server指定maximum degree of parallelism的选项不同。但是,上面提到的perforce文章可能会提供其他方法来满足您的需求。