【问题标题】:Crippled performance when inserting to fulltext-index table on Sql Server 2005在 Sql Server 2005 上插入全文索引表时性能下降
【发布时间】:2011-03-19 02:31:45
【问题描述】:

我正在尝试将大量记录插入全文索引的表中。我已将更改跟踪设置为 auto

记录是从另一个表中插入的,每次插入的数量通常约为 50,000。在 SQL Server 2008 上,这需要大约 5 秒才能完成。但是在我们的 live 2005 环境中运行这需要 10 分钟以上。

查看执行计划,似乎是插入到全文跟踪表的聚集索引中,这是问题所在。主键列是分配有newsequentialid()uniqueidentifier。但是,虽然 2008 年在 fulltext_index_docidstatus 上进行了 1 次 Clustered Index Merge,但 2005 年在 fulltext_index_map 上进行了 50,000 次 Clustered Index Insert

很遗憾,目前无法升级服务器。关闭更改跟踪可以解决问题,但我真的不想这样做,因为自己管理人口不会很好。更改跟踪似乎是让新记录出现在全文索引中的最快方法,这是优先事项。

有没有办法在保持更改跟踪启用的同时解决这个问题?

【问题讨论】:

    标签: sql-server sql-server-2005 full-text-search change-tracking


    【解决方案1】:

    我怀疑您的问题的真正本质是全文引擎在 2008 年被移到 SQL Server 内部,而以前的版本使用外部 MSFTESQL 服务。这意味着 SQL 2008 在处理全文索引时可以充分利用基于集合的操作,而正如您所见,2005 必须单独处理每一行。更多详细信息可以在此Microsoft White Paper 中找到。最重要的是,我认为您必须关闭更改跟踪才能获得所需的性能或忍受较长的插入时间。

    【讨论】:

    • 谢谢。我想我必须在批量操作之前关闭更改跟踪,然后再运行增量更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    相关资源
    最近更新 更多