一条语句执行了140S怎么优化

waiwai1015 2010-09-14 03:22:16
SELECT count( distinct set_ID) FROM ad_send_get WHERE 条件
执行了140S
SELECT count( set_ID) FROM ad_send_get WHERE条件
就是15秒
我把它写在存储过程里也试了,这个本身是一个视图
怎么优化呀
...全文
179 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
waiwai1015 2010-09-16
  • 打赏
  • 举报
回复
我不想分组查询,只想一起查出结果,最后就是我改了视图,那个视图是不太好
chokochu 2010-09-14
  • 打赏
  • 举报
回复

--试试这样
SELECT count( set_ID) FROM ad_send_get WHERE条件 group by set_ID
夜空皓月 2010-09-14
  • 打赏
  • 举报
回复
首先,视图的操作时间是比较长的
然后,不要用distinct,后面直接加group by,分组查询
bancxc 2010-09-14
  • 打赏
  • 举报
回复
去重复时间比较长 distinct

加索引.
flyword2007 2010-09-14
  • 打赏
  • 举报
回复
加索引,优化 where 条件
kahn520 2010-09-14
  • 打赏
  • 举报
回复
SELECT count(1) FROM ad_send_get WHERE 条件 group by set_ID
xiaofan_sap 2010-09-14
  • 打赏
  • 举报
回复
在你的where条件上加入索引试试看,lz最好把你的视图的基本信息跟where条件稍微说一下,哪怕用别名~
q107770540 2010-09-14
  • 打赏
  • 举报
回复
添加索引
SELECT count( distinct set_ID) FROM ad_send_get WHERE 条件
==========
SELECT count(1) from ad_send_get where set_ID in (select( distinct set_ID) FROM ad_send_get WHERE 条件)
卧_槽 2010-09-14
  • 打赏
  • 举报
回复
你的视图可能本来就建得不好,加上条件之后更加慢

把所有的sql语句都给出来,也许能帮你优化一下。

或者你自己到事件探查器里头去慢慢优化吧。
Alvin709 2010-09-14
  • 打赏
  • 举报
回复
表加索引吧..
waiwai1015 2010-09-14
  • 打赏
  • 举报
回复
楼上的办法我试了,时间比直接写 sql还长
ztenv 2010-09-14
  • 打赏
  • 举报
回复
业务上的事情不能交给数据库来做;
ztenv 2010-09-14
  • 打赏
  • 举报
回复
不要distinct ,然后把数据读到内存中,自己去统计并过滤;
waiwai1015 2010-09-14
  • 打赏
  • 举报
回复
where后面的条件并不影响,就是distinct影响的
yw1688 2010-09-14
  • 打赏
  • 举报
回复
你的数据有多少啊?还有where后面的条件是什么?最好贴出详细代码,还有这个问题放到sql版块中去提问效果应该会好很多。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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