500万行数据,字段为nvarchar(108),如何快速查找字符串。

shoppo0505 2017-01-18 08:51:13
现状:
1. 现在有一个表格,里面有500万行数据,其中一个字段定义为nvarchar(108)。
现在因为权限和其他的客观原因,没有办法在测试环境上启用全文索引。
2. 现在使用select ... like ... 或者charindex... 执行时间都在 32秒左右徘徊。
3. index不起作用


问题:
现在只是在做分析,但是目前环境不能得出具体测试结果。
1. 假设说启用全文索引的话,能改善多少?
2. 还有其他方法能改善检索时间么?

期望目标在5秒之内,10秒之内也尚可接受


...全文
315 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2017-01-18
  • 打赏
  • 举报
回复
你的环境用全文检索 5s是可以实现的 当条件返回结果集过多时,最好在匹配时用CONTAINSTABLE(top_n_by_rank)限制返回匹配度高的结果集,自己去看一下用法CONTAINSTABLE
  • 打赏
  • 举报
回复
mark一下 学习
卖水果的net 2017-01-18
  • 打赏
  • 举报
回复
@中国风 你来说两句。
xiaoxiangqing 2017-01-18
  • 打赏
  • 举报
回复
如果是全匹配的话,就只能全文检索了
shoppo0505 2017-01-18
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
全文检索,大版做过测试,你预期 5-10 秒出结果,应该没有问题;
除了全文检索还有其他能改善性能的方法么?
卖水果的net 2017-01-18
  • 打赏
  • 举报
回复
全文检索,大版做过测试,你预期 5-10 秒出结果,应该没有问题;
shoppo0505 2017-01-18
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
你的环境用全文检索 5s是可以实现的 当条件返回结果集过多时,最好在匹配时用CONTAINSTABLE(top_n_by_rank)限制返回匹配度高的结果集,自己去看一下用法CONTAINSTABLE
好的,谢谢。
吉普赛的歌 2017-01-18
  • 打赏
  • 举报
回复
你可以用 lucene.net

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧