私はいくつかの列を持つデータベーステーブルを持っています。それらのほとんどはVARCHAR(x)
型の列です。これらの列の中にはインデックスがあり、その中のデータをすばやく検索できるようになっています。SQL Server; TEXT列のインデックス
ただし、非常に大量のデータ(平文ASCIIテキストなど23 KB)が含まれているため、列の1つがTEXT
列です。私はその列(... WHERE col1 LIKE '%search string%'...
)で検索することができるようにしたいが、現在はクエリを実行するために永遠に取っている。私はWHERE
句からその条件を削除すると、クエリが完了した(私が考えると思う)ので、この列検索のためにクエリが遅いことがわかります。
SQL Server Management Studioのインデックスビルダー/ウィザードで、その列のオプションがグレー表示されているため、この列にインデックスを追加できません。
ここでは、その列でクエリの検索を高速化するためのオプションはありますか?
お時間をありがとう...
更新
OK]をので、私は、フルテキスト検索に見て、すべてのものをやった、そして今私はクエリを実行したいと思います。しかし、 "contains"を使用すると、1つの単語しか受け付けません。正確なフレーズが必要な場合はどうすればよいですか? ... WHERE CONTAINS (col1, 'search phrase') ...
はエラーをスローします。
申し訳ありませんが、私は
SQL Serverへの新たなんだアップデート2 申し訳ありませんが、ちょうどそれを考え出しました。複数の単語を含む1つの句の代わりに、複数の「contains」句を使用します。実際には、これはまだ私が望むもの(正確なフレーズ)を得ることはできません。フレーズのすべての単語が存在することを確認するだけです。
+1:フルテキストが行く方法です - 確かに! –
リンクはもう動作していません。可能であれば修正してください! – Andreas
リンクは固定されました –