【发布时间】:2009-05-06 15:40:56
【问题描述】:
我有一个包含几列的数据库表;其中大多数是VARCHAR(x) 类型的列,其中一些列上有索引,以便我可以快速搜索其中的数据。
但是,其中一列是TEXT 列,因为它包含大量数据(23 kb 纯 ascii 文本等)。我希望能够在该列中进行搜索(...WHERE col1 LIKE '%search string%'...),但目前执行查询需要很长时间。我知道由于此列搜索,查询很慢,因为当我从 WHERE 子句中删除该条件时,查询会立即完成(我会考虑)。
我无法在此列上添加索引,因为该选项在 SQL Server Management Studio 的索引构建器/向导中为该列显示为灰色。
我有哪些选项可以加快该列中的查询搜索速度?
感谢您的宝贵时间...
更新
好的,所以我查看了全文搜索并做了所有这些事情,现在我想运行查询。但是,当使用“包含”时,它只接受一个词;如果我需要一个确切的短语怎么办? ... WHERE CONTAINS (col1, 'search phrase') ... 抛出错误。
抱歉,我是 SQL Server 新手
更新 2 抱歉,刚刚想通了;使用多个“包含”子句而不是一个包含多个单词的子句。实际上,这仍然没有得到我想要的(确切的短语),它只是确保短语中的所有单词都存在。
【问题讨论】:
标签: sql-server indexing