求助关于SQL like查询语句时间长的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助关于SQL like查询语句时间长的问题相关的知识,希望对你有一定的参考价值。
最近服务器很慢,sqlserver.exe使用率经常长时间达到100%,跟踪了下原来是Select Top 5 TF_Id,TF_Class,TF_Title,TF_Note,TF_User,TF_Now from TabelFo where TF_Title like '%关键字%' or TF_Note like '%关键字%' Order by Id Desc这个论坛语句出题,执行时间平均在5秒以上,分析了下,可能是因为TF_Note是文本字段的缘故,内容长检索量大,请教各位有没什么办法解决这个问题呢?当然别告诉我不要检索TF_Note这个字段哦,我需要的是必须要检索这个字段的方法咯~或者是什么变通的方法!
做索引最多只能用TF_Title吧,文本列TF_Note不能做为索引键列吧,但是现在开销最大的是TF_Note的查询。
我下午尝试了建立全文索引,效果很明显
建议改变数据类型然后建立索引。没有索引你想LIKE上是很耗时的。别说LIKE上。=上数据多了效率都难以接受。 参考技术B 参考
http://hi.baidu.com/luanhui2007/blog/item/bdcd90f87feb1c52242df2f5.html
例子:
http://edu.codepub.com/2009/0810/12919.php
参考资料:http://hi.baidu.com/luanhui2007/blog/item/bdcd90f87feb1c52242df2f5.html
本回答被提问者采纳求助oracle like%.%模糊查询优化
参考技术A 这种一般从业务逻辑上面优化比较好,比如把字段切割开开存,把模糊匹配变成精确匹配。 参考技术B 将%.%改为用instr函数实现。 参考技术C 建立查询字段的索引以上是关于求助关于SQL like查询语句时间长的问题的主要内容,如果未能解决你的问题,请参考以下文章