Pan*_*kaj 2 sql-server sql-server-2005 sql-server-2008
这是我之前的查询的继续
CREATE TABLE [dbo].[t](
[words] [varchar](1000) NULL,
[id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
insert into t(words)values('this is my laptop')
insert into t(words)values('this does not contains heqadphone')
Run Code Online (Sandbox Code Playgroud)
这两个插件重复250次......
SELECT * FROM
t as t
JOIN CONTAINSTABLE(t, words,'"*heqadphone"') fulltextSearch
ON
t.[Id] = fulltextSearch.[KEY]
Run Code Online (Sandbox Code Playgroud)
Select * from t where words like '%heqadphone%'
Run Code Online (Sandbox Code Playgroud)
通常我们建议不要使用我后面的查询中所述的double %%.但在检查SQL事件探查器读取和持续时间之后
你能否确认,理想情况下哪个查询可以使用?
您正在比较具有不同功能的两个不同功能:CONTAINSTABLE
为您提供其他信息,例如不具有的排名LIKE
.所以第一个问题是,你真的需要全文功能吗?如果你这样做,那么你别无选择:必须使用CONTAINSTABLE
.
另一方面,如果您不需要FTS功能但只想以最快的方式搜索列中的单个单词,那么最佳方法就是您正在做的事情:使用实际数据集测试两个选项并查看哪一个在您的环境中表现更好.如果LIKE
性能更好,那么您可以使用它,但正如erikkallen所提到的那样,请确保使用与生产中相同的数据量进行测试.
归档时间: |
|
查看次数: |
740 次 |
最近记录: |