我們使用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