2 tang huan 11 tang_huan_11 于 2016.05.09 20:37 提问

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_name,
l.pro_type,
(SELECT NVL(SUM(b.CLAIM_PRINCIPAL),0.00)
FROM T_LOAN_BID b
WHERE b.PRO_ID =l.ID
AND b.BID_STATUS>=1
AND b.BID_TYPE =1
),
l.PRO_BILLSTATUS,
l.deploy_date,
l.END_DATE,
s.QUTT_INTEREST_STARTDATE,
s.QUTT_RENT_PAYDATE,
s.QUTT_MIN_INVEST,
s.QUTT_MAX_INVEST,
c.USER_ID,
s.QUTT_NEWCUSTOMER_FLAG,
s.QUTT_PROJECT_DEADLINE_FLAG,
NVL(s.QUTT_RECOMMENDREASON,' '),
NVL(
(SELECT c.SOURCE_SIMPLE_NAME
FROM T_CUST_REPAY_SOURCE c
WHERE c.id=l.REPMENT_USER
),'-'),
(SELECT NVL(SUM(p.REPAY_INTEREST),0)
FROM T_LOAN_REPAYMENT p
WHERE p.PRO_ID=l.ID
),
NVL(l.PRO_STANDARD_TYPE,0),
l.PRO_STANDARD_TIME,
l.PRO_STATUS,
NVL(l.PACT_TYPE,'phContract1'),
s.QUTT_INTEREST_ENDDATE,
NVL(e.REVIEW_LEVEL,'-'),
NVL(l.IS_BID_PSWD,0) ,
d.FLAG,
NVL(l.IS_STAR_INVEST,0)
FROM T_LOAN_LOAN_INFO l,
T_LOAN_SCHEME_INFO s,
T_LOAN_CREDIT_LEVEL e,
T_CUST_COMPANY c,
T_DATA_DICTIONARY d
WHERE l.id = s.pro_id
AND l.id =e.pro_id
AND c.id =l.customer_id
AND l.PRO_BILLSTATUS >2
AND l.PRO_BILLSTATUS!=11
AND d.TYPE ='项目类型'
AND d.CODE =l.PRO_TYPE
AND l.PRO_TYPE ='1'
ORDER BY l.PRO_BILLSTATUS,
l.DEPLOY_DATE DESC

这条SQL子连接太多,性能太低了,有没有大牛帮忙优化一下这条语句,优化到这条SQL优化到十个人同时查询还能保证1秒内返回.有报酬.如果有方案的,请加QQ:834254081

2个回答

CSDNXIAON
CSDNXIAON   2016.05.09 20:42

Oracle SQL 查询优化.Part1
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

sunkaizhou504
sunkaizhou504   2016.05.09 20:46

1.首先所有都要大写,省去oracle为你转大写步骤
2.不要使用> 换成 >=
3.看下表结构,这里面用到的字段是否有加索引,如果加了索引了,看看那些函数索引有没有加
4.这边部分可以用decode代替NVL

u010793197
u010793197 decode 代替NVL 是什么意思?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
oracle count 百万级 分页查询记录总数、总条数优化
看到不错的文章记录一下:http://chwshuang.iteye.com/blog/1537487 oracle count 百万级 查询记录总数、总条数优化   最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次是查询总数,一次是查询分页结果 Java代码   /** 查询总记录数 **/       SELECT
Oracle SQL查询优化方法1
系统优化中很重要的方面是SQL语句的优化,对于海量数据,优质的SQL能够有效的提高系统的可用性。 总结的有点罗嗦,列个简单的目录啦~ 目录   第一部分 知识准备                            第二部分 常用sql用法和注意事项                                第三部分  sql优化总结     1.  sql
SQL 大数据查询如何进行优化?sqlserver和oracle整理
六十多条大数据优化建议。涉及到sqlserver和oracle的SQL语句。
【sql查询与优化】5.使用字符串
注:以下所有sql案例均取自"oracle查询优化改写技巧与案例"丛书。 1.遍历字符串 有时候要求把字符串拆分成单个字符,如: create or replace view v as select '天天向上' as 汉字, 'TTXS' as 首拼 from dual; 为了核对表中保存的“首拼”是否正确,需要把字符串拆分成下面的样式: 汉字       首拼 ————
Delete 语句带有子查询的sql优化
Delete 语句带有子查询的sql优化
Oracle中合理利用临时表解决in语句的优化过程
在很多情况下,如果我们要做一些筛选,很多时候很自然的想到用in语句。 比如 select * from user where id in (id1, id2, id3, ...., idN); 但数据量不多的时候,这么做确实没有什么问题,无非是全表扫描。 关于oracle中in语法的劣势,网上有很多文档可以参考,还有很多关于用exist替代in的方案。在这里就不讨论了。 先来说说我
oracle 语句提高查询效率的方法
oracle 语句提高查询效率的方法 1:.. where column in(select * from ... where ...); 2:... where exists (select 'X' from ...where ...); 第二种格式要远比第一种格式的效率高。在Oracle中可以几乎将所有的IN操作符子查询改写为使用EXISTS的子查询 使用EXISTS,Orac
Oracle sql 优化:增加order by 慢 去掉之后就变快 解决办法
一 问题背景: 1.oracle的版本的为11g 2.数据是由生产库导入部分数据至开发库 3.表为范围分区表 4.order by 的字段为分区表的分区字段 5.数据记录大概有一千万; 5.使用的分析工具为toad10 二 问题描述 1.加上order by的执行计划: 2.去掉order by的执行计划: 三问题分析    步骤1:表order by的字段,
如何查看Oracle执行计划,并通过执行计划优化SQL
http://blog.51cto.com/xiao1ang/1900950
ORACLE性能优化之SQL语句优化
操作环境:AIX +11g+PLSQL 包含以下内容: 1. SQL语句执行过程 2. 优化器及执行计划 3. 合理应用Hints 4. 索引及应用实例 5. 其他优化技术及应用