tf665415 2011-09-08 11:50
浏览 220
已采纳

oracle 统计查询效率问题

[size=large]select m.*,
ROUND(m.ywc / decode(m.sy, 0, 1, m.sy), 2) * 100 || '%' wcl
from (select distinct t.ssds,
c.corp_name,
(select count(*)
from mw_app.mwt_ud_jxgg_zjh@pms n
where 1 > 0
and n.ssds = t.ssds) sy,
(select count(*)
from mw_app.mwt_ud_jxgg_zjh@pms n
where 1 > 0
and n.ssds = t.ssds
and n.jhzt in
('B47871C3-8B00-42CE-A358-AEE9B24C8D9B',
'BF9803C9-FD26-4947-B7F9-1ED222E70207',
'22E8D811-D44A-4E72-9BBB-60AAE73238B9',
'12F96AD5-531A-4725-AF79-A0C80B57209D')) qx,
(select count(*)
from mw_app.mwt_ud_jxgg_zjh@pms n
where 1 > 0
and n.sfwc = 'T'
and n.ssds = t.ssds) ywc,
(select count(*)
from mw_app.mwt_ud_jxgg_zjh@pms n
where 1 > 0and n.sfwc = 'F'
and n.ssds = t.ssds) wwc
from mw_app.mwt_ud_jxgg_zjh@pms t,
brsys.tb_sys_corporation c
where t.ssds = c.corp_id) m
order by m.sy desc
这张表mw_app.mwt_ud_jxgg_zjh有几万数据,我的这个查询要用很长时间,导致前台的ajax请求失败,想问问师兄师姐们有什么办法[/size]

  • 写回答

3条回答 默认 最新

  • shoes_2003 2011-09-08 14:37
    关注

    太多的子查询了,执行计划肯定不好。
    即使是本地数据库表查询时间也不会短。
    不知道需求是啥,这种查询改起来麻烦。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题