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 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序