2009-06-01 6 views

答えて

6

フルテキストインデックスは、通常のインデックスとは異なります。

WHERE [mycolumn] LIKE '%' + @MyValue + '%' 

WHERE CONTAINS([mycolumn], @MyValue) 

旧意志ない使用任意の指数、あなたの質問に参照一種であっても通常の1:where句これら二つは一見同等考えてみましょう。それは考慮されていませんsargable。後者は、フルテキストインデックスを使用するようにサーバーに指示します。

一方、これは通常のインデックスで動作しますが、しかし、利用可能なフルテキストインデックス無視:彼らはを命じているので

WHERE [mycolumn] LIKE @MyValue + '%' 

は、通常のインデックスが働きます。インデックス内の値を参照する場合は、バイナリ検索、b * -treeなどのアルゴリズムを使用して一致をより迅速に検索または拒否したり、ジョインまたは範囲を比較してサーバーが「歩く」ことができます多くの値を効率的にチェックするためのインデックスです。

フルテキストインデックスは、コンテンツの途中ですぐに検索できる必要があるため、すぐ注文することはできません。したがって、彼らは多くですmore complicatedです。

1

いいえ、そのタイプの検索にフルテキストインデックス列を作成する必要はありません。通常の索引で自動的には作成されません。

+0

その後、通常のインデックスは何ですか? – Alex

関連する問題