oracle sql 优化 ,请各位看看哈

问题描述

oracle sql 优化 ,请各位看看哈

select e.id,
e.content,
e.write_time,
e.orig_id,
e.from_client,
e.images,
u.nickname || '(' || u.realname || ')' as writer,
a.orig_content,
b.praise_times,
c.comment_times,
d.transfer_times
from wx_essay e
left join wx_user u on e.writer_id = u.id
left join (select oe.id, oe.content orig_content from wx_essay oe) a on e.orig_id = a.id
left join (select p.essay_id, count(1) praise_times
from wx_essay e, wx_praise p
where p.essay_id = e.id
group by p.essay_id) b on e.id = b.essay_id
left join (select c.essay_id, count(1) comment_times
from wx_essay e, wx_comments c
where c.essay_id = e.id
group by c.essay_id) c on e.id = c.essay_id
left join (select ee.orig_id, count(1) transfer_times
from wx_essay ee
group by ee.orig_id) d on e.id = d.orig_id
order by e.write_time desc;

wx_essay 和 wx_user 表 数据量分别 不到20万,其他几张表都是1000左右数据,
wx_essay 表id是主键、write_time、WRITER_ID、ORIG_ID分别加了索引;
wx_user表id为主键,现在这个查询根本卡死出不来
下面是解释计划如图

解决方案

with tmp as
(select e.id, e.content, e.write_time, e.orig_id, e.from_client, e.images
from wx_essay e where e.orig_id = a.id)
select e.*,
u.nickname || '(' || u.realname || ')' as writer,
a.orig_content,
b.praise_times,
c.comment_times,
d.transfer_times
from tmp e
left join wx_user u
on e.writer_id = u.id
left join (select p.essay_id, count(1) praise_times
from tmp e, wx_praise p
where p.essay_id = e.id
group by p.essay_id) b
on e.id = b.essay_id
left join (select c.essay_id, count(1) comment_times
from tmp e, wx_comments c
where c.essay_id = e.id
group by c.essay_id) c
on e.id = c.essay_id
left join (select ee.orig_id, count(1) transfer_times
from tmp ee
group by ee.orig_id) d
on e.id = d.orig_id
order by e.write_time desc;

解决方案二:

用with 减少你同一个表的扫描次数

解决方案三:

oracle sql优化
Oracle SQL的优化
Oracle_SQL优化

解决方案四:

唉咋传不了图啊 大家都来看看啊

解决方案五:

解决方案六:

解释计划如上图,请路过的人才看看,帮忙分析分析

解决方案七:

没人吗 ????????????????????????

时间: 2024-12-04 23:36:20

oracle sql 优化 ,请各位看看哈的相关文章

看了此文,Oracle SQL优化文章不必再看!

  第一章 看了此文,Oracle SQL优化文章不必再看! DBAplus社群 | 2015-11-17 23:44 目录SQL优化的本质 SQL优化Road Map 2.1 制定SQL优化目标 2.2 检查执行计划 2.3 检查统计信息 2.4 检查高效访问结构 2.5 检查影响优化器的参数 2.6 SQL语句编写问题 2.7 SQL优??\x2F限制导致的执行计划差 SQL优化案例 SQL执行计划获取 4.1 如何获取准确的执行计划 4.2 看懂执行计划执行顺序 一SQL优化的本质 一般来

【重磅干货】看了此文,Oracle SQL优化文章不必再看!

听"俊"一席话,胜读十年书.看了这篇由DBA+社群联合发起人丁俊大师(网名:dingjun123)分享的SQL优化大作,其他Oracle SQL优化文章都不必再看了!   专家简介    丁俊 网名:dingjun123 DBA+社群联合发起人   性能优化专家,Oracle ACEA,ITPUB开发版资深版主.8年电信行业从业经验,在某大型电信系统提供商工作7年,任资深工程师,从事过系统开发与维护.业务架构和数据分析.系统优化等工作.擅长基于ORACLE的系统优化,精通SQL.PL/

oracle SQL优化到10人同时查询返回1s

问题描述 oracle SQL优化到10人同时查询返回1s 20C SELECT l.id l.pro_name l.pro_number s.qutt_financing_value s.qutt_project_deadline s.qutt_ready_rate s.qutt_cal_way NVL( (SELECT c.CUST_SIMPLENAME FROM T_CUST_COMPANY c WHERE c.id=l.assure_cust_id )'-') AS assure_nam

Oracle sql 优化小结

对于sql优化,从实际工作经验出发,总结如下: 1).where过滤部分,等式左边不要带任何计算和嵌套函数,想办法等价替换,在等式右边去做变动: 2).能手动计算的部分,手动算好写上固定的值,不要写一个表达式在sql里,让程序每次去重算: 3).3个及以上大表关联,慢到跑个30分钟都不出结果,最直接简单的方法是建一个临时表,拆分多表关联为多个2表关联的等价sql; 4).对于非常慢的sql,可以尝试重新获取源表信息,获取新的执行计划: 5).在实现逻辑时,对于有排序操作的关键字(order by

ORACLE SQL优化之ORA-03150&ORA-02055&ORA-02063

                                                                                                             >   

Oracle SQL tuning 数据库优化步骤图文教程

  SQL Turning 是Quest公司出品的Quest Central软件中的一个工具.Quest Central是一款集成化.图形化.跨平台的数据库管理解决方案,可以同时管理 Oracle.DB2 和 SQL server 数据库. 一.SQL Tuning for SQL Server简介 SQL语句的优化对发挥数据库的最佳性能非常关键.然而不幸的是,应用优化通常由于时间和资源的因素而被忽略.SQL Tuning (SQL优化)模块可以对比和评测特定应用中SQL语句的运行性能,提出智能

Oracle SQL tuning 数据库优化步骤分享(图文教程)_oracle

SQL Turning 是Quest公司出品的Quest Central软件中的一个工具.Quest Central是一款集成化.图形化.跨平台的数据库管理解决方案,可以同时管理 Oracle.DB2 和 SQL server 数据库. 一.SQL Tuning for SQL Server简介 SQL语句的优化对发挥数据库的最佳性能非常关键.然而不幸的是,应用优化通常由于时间和资源的因素而被忽略.SQL Tuning (SQL优化)模块可以对比和评测特定应用中SQL语句的运行性能,提出智能化的

被埋没的SQL优化利器——Oracle SQL monitor

转载声明:本文为DBA+社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA+社群(dbaplus).    据说,在Oracle企业版数据库中有一个免费的工具,乃SQL优化之利器,那就是Oracle SQL monitor.下面,由DBA+社群原创专家周俊,给大家科普一下这一被埋没的神器.   专家简介    周俊 DBA+社群原创专家   具有14年以上Oracle数据库技术支持经验,在IBM的7年间担任华东区非IBM logo产品技术支持团队team leader

Oracle SQL tuning 步骤

    SQL是的全称是Structured Query Language(结构化查询语言).SQL是一个在80年代中期被使用的工业标准数据库查询语言.不要把SQL语言与商业化产品如Microsoft SQL server或开源产品MySQL相混淆.所有的使用SQL缩略词的这些都是SQL标准的一部分. 一.SQL tuning之前的调整    下面这个粗略的方法能够节省数千小时乏味的SQL tuning,因为一旦调整它将影响数以百计的SQL查询.记住,你必须优先调整它,否则后    续的优化器参