Sql server SQL Server 2000是否可以在不阻塞正在读取的表的情况下填充全文目录?

Sql server SQL Server 2000是否可以在不阻塞正在读取的表的情况下填充全文目录?,sql-server,blocking,full-text-search,Sql Server,Blocking,Full Text Search,我在SQLServer2000上有一个数据库服务器(是的,我知道…),其中一些表上有全文目录。我现在在安静的时间通宵做一个完整的人口统计,我希望能够在白天更新目录,以便在搜索中考虑新的数据 我注意到的问题是,当一个增量填充运行时,会有大量的阻塞,这是由填充过程引起的。该数据库上的其他事务使用“未提交读取”或脏读取来最小化延迟(我并不特别关心精确到第二个数据),因此我不太清楚为什么人口本身只是在读取数据,会阻止它们 有什么线索和提示吗?短篇故事:没有,直到SQL Server 2008的最新更新,

我在SQLServer2000上有一个数据库服务器(是的,我知道…),其中一些表上有全文目录。我现在在安静的时间通宵做一个完整的人口统计,我希望能够在白天更新目录,以便在搜索中考虑新的数据

我注意到的问题是,当一个增量填充运行时,会有大量的阻塞,这是由填充过程引起的。该数据库上的其他事务使用“未提交读取”或脏读取来最小化延迟(我并不特别关心精确到第二个数据),因此我不太清楚为什么人口本身只是在读取数据,会阻止它们


有什么线索和提示吗?

短篇故事:没有,直到SQL Server 2008的最新更新,情况才好得多。正如我们在这里记录的,2008年的RTM版本也存在这些问题:

解决方法是使用最快的存储子系统,这些子系统对您的预算和工作负载都有意义。全文目录需要与数据和日志位于不同的阵列上,这样才能更快地完成填充

您还提到,您对读取导致锁定感到惊讶。我们有一些关于SQLServerPedia的文章解释了SQLServer的锁定过程,如下所示:

如果您想要更具体的答案,请在填充过程中观察您的服务器。运行sp_who2,查看哪些查询被阻止,并运行DBCC-INPUTBUFFER(spid)命令以了解它们的T-SQL是什么。这样,您就可以确切地看到是什么类型的查询导致了它。如果您确定它使用的是readuncommitted,请上传一份查询执行计划的副本,我们可以帮助您解释它以了解发生了什么