【发布时间】:2013-03-04 11:25:29
【问题描述】:
我有 Users 表包含大约 500,000 行用户数据
用户的全名存储在 4 列中,每列的类型为 nvarchar(50)
我有一个名为 UserFullName 的计算列,它等于 4 列的组合
我有一个 Stored Procedure 使用 like operatior 按名称在 Users 表中搜索,如下所示
Select *
From Users
Where UserFullName like N'%'+@FullName+'%'
我在执行此 SP 时遇到性能问题.. 需要很长时间 :(
有什么办法可以克服使用 Like 运算符的性能不足的问题吗?
【问题讨论】:
-
尝试在 4 列中覆盖索引?在查询分析器中运行查询,这也会有所帮助。
-
为什么需要使用
LIKE?UserFullName字段与@FullName相比有哪些额外的文本? -
客户端需要通过名称的任何部分进行搜索以获取其全名包含该部分的任何用户
标签: sql sql-server sql-server-2008 search sql-like