260万レコードのテーブルでSQL Server 2008 R2全文検索を使用しています。検索パフォーマンスはしばしば貧弱です。一般的に報告されているパターンは、コールドシステム/最初の実行〜10 +秒、その後の実行〜1〜2秒です。バージョン2008 R2以降、Sql Serverフルテキスト検索(FTS)のパフォーマンスが向上していますか?
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(!)
私の質問:
So You Think You Can Search – Comparing Microsoft SQL Server FTS and Apache Lucene
記事は、ウィキペディアのデータをダンプ使用して、以下の速度比較結果を示しています。これは2月、2013年の日付の次の記事で報告された結果とインラインであります次のとおりです。
この記事は2013年2月8日に公開されて以来、主要なSQL Serverのリリースでは、より新しいSQL Serverバージョン(2012,2014,2016)に移行したとき、同じデータ(好ましくは1〜100万レコード)
最近のSQL Serverのバージョンでは、solr/luceneのようにRAMに配置されたFTSカタログ/インデックスがサポートされていますか?
UPDATE:このシナリオでは、我々はほとんどFTカタログリンクテーブルに新しいデータを挿入していないが、唯一の非常に頻繁に検索さ読みを実行します。だから、私はSQLが常にFTSインデックスを再構築することが問題だとは思わない。
コメントありがとう、非常に貴重な情報。しかし、私は現実世界の経験を探していました。 MSFTの主張に加えて、SQL Server 2008 R2からより新しいバージョンに移行したときに実際のFTSのパフォーマンスが向上したと報告することはできますか?これまでのところ、最近のSQL Serverのバージョン(たとえば2014年)でもFTSの遅さについて多くの人々が不平を感じています。 SQL Server 2005はFTSの中で最も速いリリースだったようです。 – andrews
デベロッパーエディションは無料でエンタープライズと同じ機能を持っています。あなたはそれらをテスト場として使用することができます – TheGameiswar
私たちはms購読しています。新しいSQLインスタンスを取得するのは問題ではありません。アップグレードするバージョンのデータを収集するだけです。検索時間が今のままであれば、FTSからsolrに移動します。 – andrews