我们使用SQL Server 2008 R2全文搜索来搜索260万条记录。搜索性能通常很差,它遵循通常报道的模式:冷系统/首次运行〜10 +秒,随后运行〜1-2秒。这是内嵌于2月,2013年的文章中报道的结果:自2008 R2版本以来是否有任何Sql Server全文搜索(FTS)性能改进?
So You Think You Can Search – Comparing Microsoft SQL Server FTS and Apache Lucene
文章给出了以下速度比较结果使用维基百科转储数据:
Indexing speed, size and single query execution time using: Lucene MS SQL FTS Indexing Speed 3 MB/sec 1 MB/sec Index Size 10-25% 25-30% Simple query < 20 ms < 20 ms Query With Custom Score < 4 sec > 20 sec
Parallel Query Executions (10 threads, average execution time per query in ms): MS SQL FTS Lucene (File System) Lucene (RAM) Cold System: Simple Query 56 643 21 Boost Query 19669* 859 27 Second executions: Simple Query 14 8 < 5 Boost Query 465 17 9 *average time, the very first query could be executed up to 2 min(!)
我的问题是:
由于有几个主要的SQL Server版本自2013年2月8日发布文章以来,有人可以在迁移到更新的SQL Server版本(2012,2014和2016)时报告相同数据(最好是超过1百万条记录)的任何FTS性能改进?
更新的SQL Server版本是否支持像solr/lucene一样支持放在RAM中的FTS目录/索引?
UPDATE:在我们的场景中,我们很少将新数据插入FT目录链接表,但运行只读搜索非常频繁。所以,我不认为SQL不断重建FTS索引是个问题。
感谢您的评论,非常有价值的信息。但是,我正在寻找真实世界的经验。除了MSFT声明之外,当有人从SQL Server 2008 R2迁移到更新的版本时,是否可以报告真实的FTS性能增长?到目前为止,我发现许多人抱怨FTS缓慢,即使在最近的SQL服务器版本中(例如2014)。就FTS而言,SQL Server 2005似乎是最快的版本。 – andrews
开发者版本是免费的并且与企业具有相同的功能。您可以使用它们作为测试场地 – TheGameiswar
我们有ms订阅。获取新的sql实例不是问题。只收集有关要升级到哪个版本的数据。如果搜索时间保持现在的状态,我们将从FTS转移到solr。 – andrews