ms sqlサーバーのクエリに問題があります。私は "col1"という列にフルテキストインデックスを持っています。この列のデータはかなり大きくなる可能性があります(20,30 kb +)。この列で正確なフレーズを検索したいと考えています。SQL Server: 'contains' vs 'charindex'
"contains"関数がこれのための最も速い関数だと言われましたが、私はこれを行うための少なくとも2つの方法を知っています。 "like"関数を使用し、 "charindex"を使用します。
問題は、#記号を含むフレーズを検索しているときに "contains"が機能しないことです。たとえば、 "... WHERE contains(col1、 '" query string# "')..."は常に0の結果を返します。
私はcharindexを使用するように切り替えましたが、結果は返されますが、この関数を使用してデータベースを照会するにはかなり時間がかかります。
このクエリを高速化するか、contains関数で#記号を受け入れる方法はありますか?私は機能が含まれていCHARINDEX使用して切り替えることにしましたお時間を
おかげで...
更新 。したがって、クエリデータに#記号が含まれている場合は、charindexを使用します。他のすべてのクエリでは、containsを使用します。最高の仕事をするようです。
、非常に興味深いですそのことを考えたことがないが、それは私の場合では動作しません。データベースはいくつかの異なるアプリケーションに使用されており、データベースの値を変更することはできません。 – user85116