关于SQL语句效率的问题

加油馒头 2009-04-09 04:12:44
select a.MATERIAL as r,count(*) as c from TZ a,YW b where a.gjz=b.gjz and a.MATERIAL!=' ' group by a.MATERIAL

TZ 表 大概有 几十万条数据
YW 表 大概有 几万条数据

两个表连接查询后大概有几万条数据

现在的问题是 要对多表中的一个字段分组,速度很慢是什么原因?
或者有没什么更好的写法?

大牛们!~~~~~请指教
...全文
69 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
加油馒头 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zxf_feng 的回复:]
select a.MATERIAL as r,count(换一个表的字段) as c from TZ a,YW b where a.MATERIAL is not null and a.gjz=b.gjz  group by a.MATERIAL

这样试试,最后看看执行计划
[/Quote]

我看了下时间 没有*快
wxw_cool 2009-04-10
  • 打赏
  • 举报
回复
最好是用、、、存储过程。这样速度快得多。。。网上很多关于这方面的实例。LZ好好找找吧。
阿三 2009-04-09
  • 打赏
  • 举报
回复
select a.MATERIAL as r,count(换一个表的字段) as c from TZ a,YW b where a.MATERIAL is not null and a.gjz=b.gjz group by a.MATERIAL

这样试试,最后看看执行计划
pyxyu 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 denanjin 的回复:]
创建索引速度会快很多,最好是以int 型的字段做为索引列.如果你的结贴率再低点的话估计你给100分都没有人来回答你的问题了
[/Quote]
再修改一下语句
select a.MATERIAL as r,count(*) as c from TZ a
where exists(select 1 from YW b where a.gjz=b.gjz) and a.MATERIAL!=' ' group by a.MATERIAL
加油馒头 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 denanjin 的回复:]
创建索引速度会快很多,最好是以int 型的字段做为索引列.如果你的结贴率再低点的话估计你给100分都没有人来回答你的问题了
[/Quote]

呵呵是的,如果字段为int型是快很多的,但是现在时字符型的,不知道这么搞的很慢
加油馒头 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 denanjin 的回复:]
创建索引速度会快很多,最好是以int 型的字段做为索引列.如果你的结贴率再低点的话估计你给100分都没有人来回答你的问题了
[/Quote]

有可行的答案 立马结贴
denanjin 2009-04-09
  • 打赏
  • 举报
回复
创建索引速度会快很多,最好是以int 型的字段做为索引列.如果你的结贴率再低点的话估计你给100分都没有人来回答你的问题了
fuyou001 2009-04-09
  • 打赏
  • 举报
回复
结帖率:20.59%
太低

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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