2

6つのフィールドしかない非常に大きなテーブルがあります。行数は約2000万行です。1つの整数フィールドを含むクラスター化インデックスがあります。ただし、頻繁に検索する必要があるnvarchar(max)フィールド(必ずしも一意ではありませんが、nullになることはありません)があり、SQLにはインデックスのサイズに上限があるため、インデックスを作成できないという問題があります。これを解決するための私のオプションは何ですか?私はSQLにあまり詳しくないので、専門用語は避けてください。

4

2 に答える 2

2

全文検索を使用する必要があるようです:

SQL Serverの全文検索を使用すると、ユーザーとアプリケーションはSQLServerテーブルの文字ベースのデータに対して全文クエリを実行できます。

..。

これらの列は、 次のデータ型のいずれかを持つことがcharできます:、、、、、、、、、、、またはvarcharncharnvarchartextntextimagexmlvarbinary(max)

大きなテキスト列のインデックスを追加できるようにするためにフルテキストインデックスが必要になるだけでなく、特定の単語や大きなドキュメントの途中にあるフレーズの場合、検索で先頭のワイルドカード(つまりWHERE TextField LIKE '%Specific word or phrase%')を使用するとフルテキスト以外のインデックスを使用できなくなるため、通常のインデックスは役に立ちません。

于 2013-02-08T19:01:46.823 に答える
0

インデックスのない検索は効率的ではありません。

全文検索はchar, varchar, nvarcahr列で実行できます。ただし、フルテキストインデックスを作成すると、常にうまく機能します。

一部の列でインデックスなしで機能する理由は、全文検索の拡張機能(セマンティクス、単語の距離、ストップワードなど)を許可するためです。

于 2013-06-25T21:48:29.020 に答える