Microsoft 将 Microsoft SQL Server 2008 修复分发为一个可下载文件。由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。Microsoft 将 Microsoft SQL Server 2008 或 SQL Server 2008 R2 修补程序分发为一个可下载文件。由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 或 SQL Server 2008 R2 版本的所有修补程序和所有安全修补程序。
症状
请考虑以下情况:
-
你有一个全文搜索查询,该查询在 Microsoft SQL Server 2008 或 SQL Server 2008 R2 的条件中将 CONTAINSTABLE 函数与许多 OR 和 and 谓词一起使用。 例如,你有以下 50 和 操作: Declare @Keywords varchar(4000) = NULLset @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((("TOKarchitect" OR "architectural") AND ("TOKengineer" OR "engineer")) AND "gineer") AND ("TOKmechanical" OR "Mechanical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKcontrol" OR "Control")) AND ("TOKsystem" OR "Systems")) AND ("TOKengineer" OR "Engineer")) AND ("TOKproject" OR "Project")) AND ("TOKmanager" OR "Manager")) AND ("TOKengineer" OR "Engineering")) AND "Scheme") AND ("TOKmanufacture" OR "Manufacturing")) AND ("TOKengineer" OR "Engineer")) AND ("TOKmetallurgist" OR "Metallurgy")) AND ("TOKmetallurgist" OR "Metallurgist")) AND ("TOKprocess" OR "Process")) AND ("TOKTechnology" OR "Technology")) AND ("TOKproduct" OR "Production")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKcontrol" OR "Control")) AND ("TOKengineer" OR "Engineer")) AND "Mechatronics") AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineer")) AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "engineering")) AND ("TOKengineer" OR "Engineering")) AND ("TOKgraduate" OR "Graduate")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "consultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKRecruitment" OR "recruitment"))'select * from CONTAINSTABLE(test_table, *, @keywords, 1000)
-
您运行查询。
在这种情况下,可能会出现 "非生成计划程序" 错误。 此外,在 SQL Server 2008 或 SQL Server 2008 R2 应用程序日志文件夹中生成了一个小转储文件,并且 SQL Server 错误日志文件中记录了以下错误:
<时间戳> 服务器使用 "dbghelp" 版本 "4.0.5" 的服务器<时间戳> server * * * 无法获取 spid 0<时间戳的线程上下文>Server * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *><><* *<时间戳> server *<时间>spid <spid><时间戳>server *<时间戳>server *<时间戳><时间戳> server * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *><>< 外部转储过程未返回错误。<时间戳> 服务器进程0:0:0 (0xf94)工作0x00000000817481A0 似乎在计划程序0上不可生成。 线程创建时间:12925321224306。 大约使用线程 CPU:内核 62 ms,用户 75187 ms。 流程利用率98%。 系统闲置0%。 间隔: 76403 ms。<时间戳> 服务器进程0:0:0 (0xf94)工作0x00000000817481A0 似乎在计划程序0上不可生成。 线程创建时间:12925321224306。 大约使用线程 CPU:内核 125 ms,用户 145250 ms。 流程利用率98%。 系统闲置0%。 间隔: 148417 ms。<时间戳> 服务器进程0:0:0 (0xf94)工作0x00000000817481A0 似乎在计划程序0上不可生成。 线程创建时间:12925321224306。 大约使用线程 CPU:内核 171 ms,用户 205515 ms。 流程利用率98%。 系统闲置0%。 间隔: 209729 ms。<时间戳> 服务器进程0:0:0 (0xf94)工作0x00000000817481A0 似乎在计划程序0上不可生成。 线程创建时间:12925321224306。 大约使用线程 CPU:内核 218 ms,用户 266343 ms。 流程利用率98%。 系统闲置0%。 间隔: 271588 ms。<时间戳> 服务器进程0:0:0 (0xf94)工作0x00000000817481A0 似乎在计划程序0上不可生成。 线程创建时间:12925321224306。 大约使用线程 CPU:内核 234 ms,用户 325156 ms。 流程利用率97%。 系统闲置0%。 间隔: 333671 ms。<时间戳> 服务器进程0:0:0 (0xf94)工作0x00000000817481A0 似乎在计划程序0上不可生成。 线程创建时间:12925321224306。 大约使用线程 CPU:内核 296 ms,用户 386000 ms。 流程利用率97%。 系统闲置0%。 间隔: 396370 ms。
原因
出现此问题的原因是 SQL Server 2008 或 SQL Server 2008 R2 不能正确发布计划程序。
解决方案
累积更新信息
SQL Server 2008 R2
此问题的修补程序首次在累积更新5中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2438347 SQL Server 2008 R2 的累积更新程序包5 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
SQL Server 2008 Service Pack 1
此问题的修补程序首次发布于 SQL Server 2008 Service Pack 1 的累积更新10。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2279604 SQL Server 2008 的累积更新包 10 Service Pack 1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970365 在发布 SQL Server 2008 Service Pack 1 之后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 1 修补程序应用到 SQL Server 2008 Service Pack 1 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。
SQL Server 2008 Service Pack 2
此问题的修补程序首次发布于 SQL Server 2008 Service Pack 2 的累积更新1。 有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2289254 SQL Server 2008 Service Pack 2 的累积更新1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2402659 发布 SQL Server 2008 Service Pack 2 后发布的 SQL Server 2008 版本
解决方法
若要解决此问题,请使用全文搜索同义词库来定义谓语的同义词。 若要执行此操作,请将 FORMSOF 函数与 同义词库 值一起使用,然后添加所有关键字作为参数。 对于 "症状" 部分中所述的示例,以下是示例查询的更新版本: Select * from test_table where Contains(*,'FORMSOF (THESAURUS,"architectural","engineer","Mechanical","Engineering","Electronics","Engineer","Electrical","Control","Systems","Project","Manager","Manufacturing","Metallurgy","Metallurgist","Process",”Design”,"Technology","Production","Quality","Control","Civil","Graduate","Recruitment","consultant","trainee","recruitment")')
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
有关 CONTAINSTABLE 函数的详细信息,请访问以下 Microsoft 开发人员网络(MSDN)网站:
有关 CONTAINSTABLE 函数的常规信息有关 SQL Server 的增量服务模型的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897 从 SQL Server 团队提供的增量服务模型可提供报告问题的修补程序有关 SQL Server 更新的命名架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499Microsoft SQL Server 软件更新程序包的新命名架构有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明