开发者社区> 问答> 正文

SQL Server全文本搜索:具有MSSEARCH等待类型的挂起进程

我们有一台运行大量数据库的SQL Server 2005 SP2计算机,所有数据库都包含全文目录。每当我们尝试删除这些数据库之一或重建全文索引时,删除或重建过程都会无限期地挂起MSSEARCH等待类型。无法终止该过程,并且需要重新启动服务器才能使事情再次运行。根据Microsoft论坛帖子1,问题似乎出在全文目录的删除不当。任何人都可以推荐一种方法来确定导致该问题的目录,而不必删除所有目录?

1 [ http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2681739&SiteID=1] “是的,我们确实在数据库中有全文目录,但是由于我禁用了数据库的全文搜索,并禁用了msftesql,我没有怀疑。但是,我从Microsoft支持部门获得了一篇文章,向我展示了如何测试未正确删除的目录。因此,我发现仍然存在一个旧目录,在重新启用全文搜索之后,并且只有在重新启用全文搜索之后,我才能删除该目录,从那时起我的备份就起作用了”

展开
收起
心有灵_夕 2019-12-26 22:18:51 632 0
1 条回答
写回答
取消 提交回答
  • 这是一个建议。我没有任何损坏的数据库,但是您可以尝试以下操作:

    declare @t table (name nvarchar(128))
    insert into @t select name from sys.databases --where is_fulltext_enabled 
    
    while exists(SELECT * FROM @t)
    begin
        declare @name nvarchar(128)
        select @name = name from @t
        declare @SQL nvarchar(4000)
        set @SQL = 'IF EXISTS(SELECT * FROM '+@name+'.sys.fulltext_catalogs) AND NOT EXISTS(SELECT * FROM sys.databases where is_fulltext_enabled=1 AND name='''+@name+''') PRINT ''' +@Name + ' Could be the culprit'''
        print @sql
        exec sp_sqlexec @SQL
        delete from @t where name = @name
    end
    
    

    如果不起作用,请删除过滤器检查sys.databases。

    2019-12-26 22:19:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载