如何提高sql的查询性能?

chenyang80425 2007-10-12 11:54:16
我要在一张大约有30万条记录的表中查询几十条符合条件的记录,我已在创建了索引(是以查询条件里的字段为索引的),但为什么建立索引后与没有建立索引的时候,查询速度差不多呢?按理说建立索引后,查询速度应该有明显提高才是呀.怎么会没有改变呢?要如何提高sql查询性能呢?
...全文
198 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
panjinfu80 2007-10-18
  • 打赏
  • 举报
回复
1、对硬件进行高质量升级
2、使用光纤网络
3、对语言进行忧化

一张表三十条数据,不多的,这样的数据量应该不会很慢的。
chenyang80425 2007-10-18
  • 打赏
  • 举报
回复
我用了索引,怎么没得效果呢?
yms_wangxm 2007-10-15
  • 打赏
  • 举报
回复
模糊查询会减慢运行速度的。。。。
chenyang80425 2007-10-15
  • 打赏
  • 举报
回复
请问还有些什么好的办法嘛?
cxmcxm 2007-10-13
  • 打赏
  • 举报
回复
可对flowflag建索引,

LTRIM(RTRIM(DocumentID)) < > '0 '
LTRIM(RTRIM(ReceiverList)) LIKE '%,120,% '

建议程序写入数据时,先作处理,查询时不要加ltrim与rtrim
guoli0813 2007-10-12
  • 打赏
  • 举报
回复
对于你说得问题,我觉得可以从以下几点去考虑:
你的查询条件是不是多条,假如是多条的话,就有机会出现查询速度和原来差不多的问题
第二:你第一次查询完毕之后,建立完成索引之后,重新启动计算机,目的是释放内存,因为SQL运行会占据内存步释放,这个挺讨厌的
comszsoft 2007-10-12
  • 打赏
  • 举报
回复
你的表你的查询语句呢
zcdsunny 2007-10-12
  • 打赏
  • 举报
回复
作索引会有点作用,另外建议你可以考虑先过滤后关联的思路,抛弃视图
chenyang80425 2007-10-12
  • 打赏
  • 举报
回复
V_Office_SendStep是一个视图.并且连接的另一张表也有30万条数据,如果只对一张表进行查询,时间有确是要耗得少些.但两张表必须做连接呀.因为数据在不同的表里面.请问还有什么其它的解决方法呢?另外请问下,做索引是不是对查询条件里的这几个字段(DocumentID,ReceiverList,FlowFlag,DealFlag,CancelFlag)做索引呀?但(FlowFlag,DealFlag,CancelFlag)是很多重复的值,如果对他们做索引,是不是又要降低效率呢?
zcdsunny 2007-10-12
  • 打赏
  • 举报
回复
LTRIM(RTRIM(DocumentID)) < > '0 '
LTRIM(RTRIM(ReceiverList)) LIKE '%,120,% '
这两个条件都会减慢速度的
(FlowFlag= '0 ' or FlowFlag= '1 ' or FlowFlag= '10 ') 改成 FlowFlag in ('0 ','1 ','10 ') 应该可以略微提高速度

如果V_Office_SendStep是视图,而且牵涉到多个数据量比较大的表,那应该会有更好的解决办法
ORARichard 2007-10-12
  • 打赏
  • 举报
回复
条 件 中 使 用 了 函 数 ,索 引 就 没 用 了
chenyang80425 2007-10-12
  • 打赏
  • 举报
回复
请问人有知道不?我急用呀.谢谢.
chenyang80425 2007-10-12
  • 打赏
  • 举报
回复
select PKID, DocumentID, DocumentWord, DocumentYear, Title, HurryLevelname, SecLevelname, SendTo,
titlename, isnull((convert(char(10),WriteDate,120)),'0000-00-00') as WriteDate from V_Office_SendStep
where LTRIM(RTRIM(DocumentID))<>'0'and DealFlag='0' and CancelFlag='0' and
(FlowFlag='0' or FlowFlag='1' or FlowFlag='10') and LTRIM(RTRIM(ReceiverList)) LIKE '%,120,%'
order by WriteDate desc
这是我的查询语句,请问对哪些字段做索引会提高查询速度?

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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