- - PR -
SQL Server 2005 フルテキストサーチでの部分一致
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-12-21 01:05
応答速度に関してご存知の方がいらっしゃいましたら教えていただけないでしょうか。
具体的には、100文字程度の短いカラムに対してのSELECT文では、フルテキストサーチでの部分一致(*1)と通常のLIKE述語(*2)ではどちらが速いのかという疑問です。 *1の例 WHERE CONTAINS(<COL1>, '"*あああ*" OR "*いいい*"')" *2の例 WHERE <COL1> LIKE '%あああ%' OR <COL1> LIKE '%いいい%' かなり行数のある表を上記のような部分一致検索する必要が出てきそうなので、少しでもパフォーマンスのよい手段をとりたいと思っているのですが、Webで検索してもなかなか参考になる文書が見つかりませんでした・・・。 まだ設計段階で、手元にSQL Serverもないため自分で検証が出来ない状態ですので、経験談とかでも結構です。 ご存知の方がいらっしゃいましたらよろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2008-12-21 15:21
Express Edition で検証するのも無理ですか?
| ||||||||||||
|
投稿日時: 2008-12-21 17:03
「かなりの行数」と言われても、どの程度が「かなり」かは、人により捉え方が異なってくるのでは?
検索したら、すぐにSQL Serverのオンラインマニュアル(http://msdn.microsoft.com/ja-jp/library/ms142545(SQL.90).aspx)で、次のような説明が見つかりましたが?
| ||||||||||||
|
投稿日時: 2008-12-21 23:18
レスポンスありがとうございます。
King様 Express Edition では機能としてフルテキストサーチは提供されていないようですので、未チャレンジですが検証できないと考えていました。 http://www.microsoft.com/japan/sql/prodinfo/features/compare-features.mspx 忠犬様 たしかにかなりの行数では曖昧ですね。申し訳ありません。 想定している行数は1億以上と考えてください。 また、ご指摘頂いた文章は小生も確認しておりましたが、varchar(max)に長い文章を格納しているようなデータについて記述されてるのかと考えていました。 改めて読み直すと数百万「行」とあることから1カラムあたりのテキストの長短に限らず大量の行のテキストデータ全般を対象に述べているように読めますね。 もうちょっと熟考すべきでした・・・(恥ずかしい) とりあえずフルテキストで実装する方針で設計していこうと思います。 ありがとうございました。 | ||||||||||||
|
投稿日時: 2008-12-22 22:47
私もやった事があるわけでは無いので確実ではないですが
Microsoft SQL Server 2005 Express Edition with Advanced Services http://www.microsoft.com/downloads/details.aspx?familyid=4C6BA9FD-319A-4887-BC75-3B02B5E48A40&displaylang=ja ここに書いてある「フルテキストクエリ」ってのはフルテキストサーチとは別ですかね? 間違ってたらすみません。 | ||||||||||||
|
投稿日時: 2008-12-23 23:38
King様
Express Edition with Advanced Services をインストールしてみたところ、フルテキストインデックスが作成できそうです。 with Advanced Services ならば使えるのですね。 この後、実際にいじって感触を確かめてみます。 ご指摘ありがとうございました。 |
1