1
我试图确定在表内两列实现部分搜索的最佳方式。目标是尽可能快地执行此搜索。部分搜索SQL Azure上的两个文本字段 - 最佳实践
我们的问题是我们的数据库托管在SQL Azure上;不支持FullTextIndexing。这意味着我们在SQL中可用的唯一本机命令是CHARINDEX()
和LIKE '% %'
。
查询,如果我们这样做纯T-SQL是结构:
DECLARE @SearchTerm VarChar(255) = 'Luke'
SELECT AU.UserID,
AU.FirstName,
AU.Surname
FROM dbo.Users AU
WHERE AU.FirstName LIKE '%'[email protected]+'%'
OR AU.Surname LIKE '%'[email protected]+'%'
也可给我们的是利用Lucene的能力;我们已经在Windows Azure上的Worker角色上设置了它,但是我们必须在数据库内部和Lucene内维护数据的完整性。
我想了解的是:
- 有如果我添加计算列在表中的T-SQL执行
LIKE
搜索比我使用上述 - 什么更好的方法同时包含名字和姓氏这会提高查询的性能吗?
- 或者;如果我们移动到Lucene;读取性能会比上述查询大得多吗? (对此,
dbo.Users
表中目前有10,000行以下) - 把门打开;有没有我们没有考虑过的方法会使整个负载更容易?