select
aa.acct_org,
aa.loan_acct_no,
aa.FUNCTIONARY,
aa.cust_no,
sum(dwm.pkg_tools.currcdtran(bb.INTT,aa.trans_cur_cd,'T00CNY','2014-02-10')) as jtlx
from dwf.F_AGT_LONC_BASIC_INFO_H aa
left join dwf.f_agt_comr_intdist_h bb
on aa.loan_acct_no=bb.agmt_id
and bb.dw_data_dt>=to_date('2014-01-01','yyyy-mm-dd')
and bb.dw_data_dt<=to_date('2014-02-10','yyyy-mm-dd')
where aa.start_dt<=to_date('2014-02-10','yyyy-mm-dd')
and aa.end_dt>to_date('2014-02-10','yyyy-mm-dd')
and aa.trans_cur_cd<>'T00CNY'
group by aa.acct_org,aa.loan_acct_no,aa.FUNCTIONARY,aa.cust_no
having sum(bb.payable_int_amt)<>0; Plan hash value: 2421779894 ------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1483K| 192M| 3883K (2)| 12:56:39 |
|* 1 | FILTER | | | | | |
| 2 | HASH GROUP BY | | 1483K| 192M| 3883K (2)| 12:56:39 |
|* 3 | HASH JOIN OUTER | | 1483K| 192M| 3883K (2)| 12:56:38 |
|* 4 | TABLE ACCESS FULL| F_AGT_LONC_BASIC_INFO_H | 615 | 48585 | 4303 (2)| 00:00:52 |
|* 5 | TABLE ACCESS FULL| F_AGT_COMR_INTDIST_H | 53M| 2929M| 3878K (2)| 12:55:42 |
------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id):
--------------------------------------------------- 1 - filter(SUM("BB"."PAYABLE_INT_AMT")<>0)
3 - access("AA"."LOAN_ACCT_NO"="BB"."AGMT_ID"(+))
4 - filter("AA"."START_DT"<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "AA"."END_DT">TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "AA"."TRANS_CUR_CD"<>'T00CNY')
5 - filter("BB"."DW_DATA_DT"(+)<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "BB"."DW_DATA_DT"(+)>=TO_DATE(' 2014-01-01 00:00:00', 'syyyy-mm-dd
hh24:mi:ss')) Note
-----
- dynamic sampling used for this statement (level=2) create index f_agt_comr_intdist_h_idx2 on f_agt_comr_intdist_h(agmt_id,intt,payable_int_amt,dw_data_dt) tablespace EDWFIDXTBS nologging parallel 8 select
aa.acct_org,
aa.loan_acct_no,
aa.FUNCTIONARY,
aa.cust_no,
sum(dwm.pkg_tools.currcdtran(bb.INTT,aa.trans_cur_cd,'T00CNY','2014-02-10')) as jtlx
from dwf.F_AGT_LONC_BASIC_INFO_H aa
left join dwf.f_agt_comr_intdist_h bb
on aa.loan_acct_no=bb.agmt_id
and bb.dw_data_dt>=to_date('2014-01-01','yyyy-mm-dd')
and bb.dw_data_dt<=to_date('2014-02-10','yyyy-mm-dd')
where aa.start_dt<=to_date('2014-02-10','yyyy-mm-dd')
and aa.end_dt>to_date('2014-02-10','yyyy-mm-dd')
and aa.trans_cur_cd<>'T00CNY'
group by aa.acct_org,aa.loan_acct_no,aa.FUNCTIONARY,aa.cust_no
having sum(bb.payable_int_amt)<>0; Plan hash value: 2166463325 ----------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1483K| 192M| 155K (1)| 00:31:09 | | | |
| 1 | PX COORDINATOR FORCED SERIAL | | | | | | | | |
| 2 | PX SEND QC (RANDOM) | :TQ10002 | 1483K| 192M| 155K (1)| 00:31:09 | Q1,02 | P->S | QC (RAND) |
|* 3 | FILTER | | | | | | Q1,02 | PCWC | |
| 4 | HASH GROUP BY | | 1483K| 192M| 155K (1)| 00:31:09 | Q1,02 | PCWP | |
| 5 | PX RECEIVE | | 1483K| 192M| 155K (1)| 00:31:09 | Q1,02 | PCWP | |
| 6 | PX SEND HASH | :TQ10001 | 1483K| 192M| 155K (1)| 00:31:09 | Q1,01 | P->P | HASH |
| 7 | HASH GROUP BY | | 1483K| 192M| 155K (1)| 00:31:09 | Q1,01 | PCWP | |
| 8 | NESTED LOOPS OUTER | | 1483K| 192M| 155K (1)| 00:31:08 | Q1,01 | PCWP | |
| 9 | BUFFER SORT | | | | | | Q1,01 | PCWC | |
| 10 | PX RECEIVE | | | | | | Q1,01 | PCWP | |
| 11 | PX SEND ROUND-ROBIN| :TQ10000 | | | | | | S->P | RND-ROBIN |
|* 12 | TABLE ACCESS FULL | F_AGT_LONC_BASIC_INFO_H | 615 | 48585 | 4303 (2)| 00:00:52 | | | |
|* 13 | INDEX RANGE SCAN | F_AGT_COMR_INTDIST_H_IDX2 | 2412 | 134K| 284 (1)| 00:00:04 | Q1,01 | PCWP | |
---------------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 3 - filter(SUM(SYS_OP_CSR(SYS_OP_MSR(SUM("BB"."PAYABLE_INT_AMT"),SUM("PKG_TOOLS"."CURRCDTRAN"("BB"."INTT","AA"."TRANS_CUR_CD"
,'T00CNY','2014-02-10'))),0))<>0)
12 - filter("AA"."START_DT"<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "AA"."END_DT">TO_DATE(' 2014-02-10
00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "AA"."TRANS_CUR_CD"<>'T00CNY')
13 - access("AA"."LOAN_ACCT_NO"="BB"."AGMT_ID"(+) AND "BB"."DW_DATA_DT"(+)>=TO_DATE(' 2014-01-01 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "BB"."DW_DATA_DT"(+)<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
filter("BB"."DW_DATA_DT"(+)<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"BB"."DW_DATA_DT"(+)>=TO_DATE(' 2014-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) Note
-----
- dynamic sampling used for this statement (level=2) alter index f_agt_comr_intdist_h_idx2 noparallel; 关闭并行后:
Plan hash value: 2676048883 --------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1483K| 192M| 155K (1)| 00:31:09 |
|* 1 | FILTER | | | | | |
| 2 | HASH GROUP BY | | 1483K| 192M| 155K (1)| 00:31:09 |
| 3 | NESTED LOOPS OUTER| | 1483K| 192M| 155K (1)| 00:31:08 |
|* 4 | TABLE ACCESS FULL| F_AGT_LONC_BASIC_INFO_H | 615 | 48585 | 4303 (2)| 00:00:52 |
|* 5 | INDEX RANGE SCAN | F_AGT_COMR_INTDIST_H_IDX2 | 2412 | 134K| 284 (1)| 00:00:04 |
-------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 1 - filter(SUM("BB"."PAYABLE_INT_AMT")<>0)
4 - filter("AA"."START_DT"<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss')
AND "AA"."END_DT">TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"AA"."TRANS_CUR_CD"<>'T00CNY')
5 - access("AA"."LOAN_ACCT_NO"="BB"."AGMT_ID"(+) AND "BB"."DW_DATA_DT"(+)>=TO_DATE('
2014-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "BB"."DW_DATA_DT"(+)<=TO_DATE('
2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
filter("BB"."DW_DATA_DT"(+)<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "BB"."DW_DATA_DT"(+)>=TO_DATE(' 2014-01-01 00:00:00', 'syyyy-mm-dd
hh24:mi:ss')) Note
-----
- dynamic sampling used for this statement (level=2) 大表必须放在被驱动表上,走NL循环. 走Index fast full scan呢?
explain plan for select /*+ index_ffs(bb F_AGT_COMR_INTDIST_H_IDX2)*/
aa.acct_org,
aa.loan_acct_no,
aa.FUNCTIONARY,
aa.cust_no,
sum(dwm.pkg_tools.currcdtran(bb.INTT,aa.trans_cur_cd,'T00CNY','2014-02-10')) as jtlx
from dwf.F_AGT_LONC_BASIC_INFO_H aa
left join dwf.F_AGT_COMR_INTDIST_H bb
on aa.loan_acct_no=bb.agmt_id
and bb.dw_data_dt>=to_date('2014-01-01','yyyy-mm-dd')
and bb.dw_data_dt<=to_date('2014-02-10','yyyy-mm-dd')
where aa.start_dt<=to_date('2014-02-10','yyyy-mm-dd')
and aa.end_dt>to_date('2014-02-10','yyyy-mm-dd')
and aa.trans_cur_cd<>'T00CNY'
group by aa.acct_org,aa.loan_acct_no,aa.FUNCTIONARY,aa.cust_no
having sum(bb.payable_int_amt)<>0; Plan hash value: 2940667986 -----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1483K| 192M| 1203K (2)| 04:00:44 |
|* 1 | FILTER | | | | | |
| 2 | HASH GROUP BY | | 1483K| 192M| 1203K (2)| 04:00:44 |
|* 3 | HASH JOIN OUTER | | 1483K| 192M| 1203K (2)| 04:00:43 |
|* 4 | TABLE ACCESS FULL | F_AGT_LONC_BASIC_INFO_H | 615 | 48585 | 4303 (2)| 00:00:52 |
|* 5 | INDEX FAST FULL SCAN| F_AGT_COMR_INTDIST_H_IDX2 | 53M| 2929M| 1198K (2)| 03:59:47 |
----------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 1 - filter(SUM("BB"."PAYABLE_INT_AMT")<>0)
3 - access("AA"."LOAN_ACCT_NO"="BB"."AGMT_ID"(+))
4 - filter("AA"."START_DT"<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"AA"."END_DT">TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"AA"."TRANS_CUR_CD"<>'T00CNY')
5 - filter("BB"."DW_DATA_DT"(+)<=TO_DATE(' 2014-02-10 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "BB"."DW_DATA_DT"(+)>=TO_DATE(' 2014-01-01 00:00:00', 'syyyy-mm-dd
hh24:mi:ss')) Note
-----
- dynamic sampling used for this statement (level=2)

创建组合索引SQL从1个多小时到1S的案例的更多相关文章

  1. 组合索引leaf 数据存储

    1 Z 2 X 3 U 4 T 5 G 6 F 7 C 8 B 9 A 1 A 2 B 3 C 4 D Oracle的索引是以平衡树的方式组织存储的:保存的是索引列的值,以及该行的rowid的一部分( ...

  2. MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存 ...

  3. MongoDB 创建基础索引、组合索引、唯一索引以及优化

    一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引 ...

  4. [慢查优化]建索引时注意字段选择性 & 范围查询注意组合索引的字段顺序

    文章转自:http://www.cnblogs.com/zhengyun_ustc/p/slowquery2.html 写在前面的话: 之前曾说过"不要求每个人一定理解 联表查询(join/ ...

  5. mysql组合索引与字段顺序

    很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符. 看下面的例子:假设有一 ...

  6. [转]mysql组合索引与字段顺序

    下列转自:http://www.tech-q.cn/archiver/tid-11673.html 很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是 ...

  7. mysql组合索引的有序性<转>

    昨天同事关于军规里的一条mysql索引的问题咨询我,才发现自己也不太了解组合索引的规则.于是来记录一下: [推荐]如果有order by的场景,请注意利用索引的有序性.order by 最后的字段是组 ...

  8. Oracle中组合索引的使用详解(转)

    在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引.在组合索引的使用方面,Oracle有以下特点: 1. 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的w ...

  9. oracle 如何预估将要创建的索引的大小

    一.1  oracle 如何预估将要创建的索引的大小 oracle 提供了2种可以预估将要创建的索引大小的办法: ①  利用包 Dbms_space.create_index_cost 直接得到 ②  ...

随机推荐

  1. 设置IIS7文件上传的最大大小 maxAllowedContentLength,maxRequestLength

    当上传一个超过30M的文件时,服务器会重定向至404.13页面,报错如下: HTTP Error 404.13 - Not Found The request filtering module is ...

  2. Bulk Insert 高效快速插入数据

    BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_nam ...

  3. MatLab计算图像圆度

    本文所述方法可以检测同一图像中的多个圆形(准确的说,应该是闭合图像). 在Matlab2010a中可以实现. 附录效果图: %颗粒圆度 clear;close all; %% %读取源图像 I = i ...

  4. Scriptcase演示程序

    为了方便大家对Scriptcase有一个非常直观的印象,现在将Scriptcase的示例程序进行了适当汉化,并且放在互联网上,您可以直接点击这个地址访问. 需要说明的是,示例程序中提供的范例,基本上都 ...

  5. Android技术精髓-Bitmap详解

    Bitmap (android.graphics.Bitmap) Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保 ...

  6. cocos2d-x项目过程记录(Objective-C转C++)

    (原创作品,欢迎转载,注明出处,谢谢:http://www.cnblogs.com/binxindoudou/admin/EditPosts.aspx?postid=3179335) 1.单例模式中, ...

  7. AsyncTask和Handler的对比

    AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操 ...

  8. 修改Calendar(梅花雨)日历控件 兼容IE9 谷歌 火狐

    修改Calendar日历控件 兼容IE9,谷歌,火狐. 只是能用,出现的位置有所不同,希望有高手再帮我改改吧,谢谢   一. [javascript]   this.iframe     = wind ...

  9. My First Blog.

    I just wanna mark my first blog in order to have a wonderful memories in the future.

  10. 启动php-fpm时报错

    [root@localhost ~]# /usr/local/php/sbin/php-fpm [06-Aug-2012 19:17:53] ALERT: [pool www] pm.min_spar ...