首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何提高这个很简单的SQL的性能

2012-03-13 
怎么提高这个很简单的SQL的性能?语句如下selectid,Title,Content,PicfromUListwheretitlelike%张学友%现在

怎么提高这个很简单的SQL的性能?
语句如下
select   id,Title,Content,Pic   from   UList   where   title   like   '%张学友% '

现在数据库当中的数据有50万条,用的是MSSQL2000,执行上面那个语句,平均用时在2.5秒左右,怎么才能提高执行速度而又不影响搜索结果?
可以说一下对表的优化及其它优化,总之不要说加内存和CPU就可以了(现在是双至强2.8+2G内存)。

谢谢

[解决办法]
charindex或许会好点.
建索引对你这条语句帮助不大
like '%张学友% '
按照以往的经验来看, 这样使用不到索引
如果是like '张学友% ' 这样没问题.
[解决办法]
select id,Title,Content,Pic from UList where title like '%张学友% '

如果title上有索引,那么这条语句是没有使用索引的,效率会很低;

select id,Title,Content,Pic from UList where title like '张学友% '

这样子会使用索引,但是正如你所说,搜索结果并不能满足需求

建议:在title上建立全文索引
[解决办法]

建议使用全文索引
数据量大了,建议不要实时搜索,
1.建议限制将搜索的结果的数量,
2.每次不同条件的搜索结果,用另外表保存起来,如果再次出现相同结果的搜索条件,只需要读保存的数据既可
3.定时清除保存表的数据,以便查询最新的数据,这个根据你自己的需求,5分钟,1小时,1天,都可以。

热点排行