0

私はMS SQl 2012を使用しており、単純なテーブルがあります

id (int) - primary key
fullname (nvarchar(500) 
age (int)
…

1,500 万件を超えるレコードがテーブルにあり、次のような簡単な検索を行う必要があります

select * from Customers where full name like '%sometext%' 

詳細: 1. 単語数が少ない場合があります 2. 多くの言語が使用されています 3. そのフルネームにはまだインデックスがありません

そのような検索を行う最良の方法は何ですか? どのインデックスを追加する必要がありますか? 英単語しかない場合、全文検索はできますか?

4

1 に答える 1

0

Sargable上記のクエリは要件を満たしていないため、full name列のインデックスは役に立ちません。データを再構築するか、最初に検索可能なもの (age = 30) でフィルター処理してから、 をスキャンする必要がありますfull name

もう 1 つのオプションは、@afrancis が示したように、テキスト検索テクノロジを組み込むことです。

于 2013-11-03T04:05:50.687 に答える