今天开发问我一个问题,PL/SQL很快出结果了,为什么应用还是很慢
create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H (agmt_id,last_trans_date,acct_bal,start_dt,end_dt,acct_status); SQL> select agmt_id, max(last_trans_date) last_trans_date, sum(acct_bal) acct_bal
from dwf.F_AGT_SAVB_ACCTINFO_H
where start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
and end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
and acct_status <> '1'
group by agmt_id; 2 3 4 5 6 596497 rows selected. Execution Plan
----------------------------------------------------------
Plan hash value: 1288393334 ------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 698K| 34M| | 44078 (1)| 00:08:49 |
| 1 | HASH GROUP BY | | 698K| 34M| 65M| 44078 (1)| 00:08:49 |
|* 2 | INDEX FAST FULL SCAN| F_AGT_SAVB_ACCTINFO_H_IDX4 | 1010K| 50M| | 33677 (1)| 00:06:45 |
------------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id):
--------------------------------------------------- 2 - filter("END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"ACCT_STATUS"<>'1' AND "START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
124565 consistent gets
0 physical reads
0 redo size
27208221 bytes sent via SQL*Net to client
437946 bytes received via SQL*Net from client
39768 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
596497 rows processed 走INDEX FAST FULL SCAN 需要3S出结果 走INDEX FULL SCAN :
create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H(agmt_id,last_trans_date,acct_bal); Execution Plan
----------------------------------------------------------
Plan hash value: 2644626439 -----------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 698K| 34M| 14M (1)| 47:22:11 |
| 1 | SORT GROUP BY NOSORT | | 698K| 34M| 14M (1)| 47:22:11 |
|* 2 | TABLE ACCESS BY INDEX ROWID| F_AGT_SAVB_ACCTINFO_H | 1010K| 50M| 14M (1)| 47:22:11 |
| 3 | INDEX FULL SCAN | F_AGT_SAVB_ACCTINFO_H_IDX4 | 14M| | 88373 (1)| 00:17:41 |
----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - filter("END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"ACCT_STATUS"<>'1' AND "START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
14247288 consistent gets
1189251 physical reads
0 redo size
28157922 bytes sent via SQL*Net to client
437946 bytes received via SQL*Net from client
39768 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
596497 rows processed select /*+ index(F_AGT_SAVB_ACCTINFO_H F_AGT_SAVB_ACCTINFO_H_idx4)*/ agmt_id, max(last_trans_date) last_trans_date, sum(acct_bal) acct_bal
from dwf.F_AGT_SAVB_ACCTINFO_H
where start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
and end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
and acct_status <> '1'
group by agmt_id; 但是这个SQL 出结果确是0.几秒 总结:PL/SQL这个工具坑爹,出结果快慢和SQL块慢没必然联系
												

PL/SQL 0.几秒出结果,SQL效率一定高吗?的更多相关文章

  1. sql 批量插入数据到Sqlserver中 效率较高的方法

    使用SqlBulk #region 方式二 static void InsertTwo() { Console.WriteLine("使用Bulk插入的实现方式"); Stopwa ...

  2. 数据库查询SQL语句的时候如何写会效率更高?

    引言 以前刚开始做项目的时候,开发经验尚浅,遇到问题需求只要把结果查询出来就行,至于查询的效率可能就没有太多考虑,数据少的时候还好,数据一多,效率问题就显现出来了.每次遇到查询比较慢时,项目经理就会问 ...

  3. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  4. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  5. [SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題

    原文:[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題 最近因為在查一個SQL的效能問題,透過 sys.dm_os_wait_stats 來取得To ...

  6. Microsoft-PetSop4.0(宠物商店)-数据库设计-Sql

    ylbtech-DatabaseDesgin:Microsoft-PetSop4.0(宠物商店)-数据库设计-Sql DatabaseName:PetShop(宠物商店) Model:宠物商店网站 T ...

  7. 由一次 UPDATE 过慢 SQL 优化而总结出的经验

    最近,线上的 ETL 数据归档 SQL 发生了点问题,有一个 UPDATE SQL 跑了两天还没跑出来: update t_order_record set archive_id = '420a7fe ...

  8. SQL<>0查询不到NUll的值

    这几天遇到这样一个问题,sql中写<>0,刚好某个记录是NULL,道理上是满足<>0的啊,可是就是抽不出来,关于这个问题,到处找了点资料,算是这里 写一个总结出来. 用java ...

  9. ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引

    WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行 ...

随机推荐

  1. 使用Fastjson提示No serializer found for class

    在调用Json串生成方法时,提示: No serializer found for class com.jeremxy.domain.EpgDetail and no propertiesdiscov ...

  2. Spark RDD API具体解释(一) Map和Reduce

    本文由cmd markdown编辑.原始链接:https://www.zybuluo.com/jewes/note/35032 RDD是什么? RDD是Spark中的抽象数据结构类型,不论什么数据在S ...

  3. [Flexbox] Using flex-direction to layout content horizontally and vertically

    The Flexbox css spec allows for more adjustable layouts. The flex-directionproperty allows you to ea ...

  4. fork 和 vfork 的区别与联系

    vfork用于创建一个新进程,而该新进程的目的是exec一个新进程,vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,不会复制页表.因为子进程会立即调用exec ...

  5. RESTful Web Services: A Tutorial--reference

    As REST has become the default for most Web and mobile apps, it's imperative to have the basics at y ...

  6. Linux设备驱动——内核定时器

    内核定时器使用 内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <Linux/timer.h> 和 kernel/timer.c 文件 ...

  7. EntityFramwork6 在项目中的应用实例

    在项目开发中使用的ROM大多采用EntityFramwork去完成,下边给出最新的EntityFramwork在项目中的应用实例 : 一.更新EntityFramwork 在安装.NetFramwor ...

  8. Java基础知识强化69:基本类型包装类之Character案例(统计字符串中大写小写以及数字的次数)

    我们直接看案例如下: package cn.itcast_03; import java.util.Scanner; /* * 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数.(不考虑 ...

  9. shell 数组(in_array)

    if [[ ! "${array[@]}" =~ $val ]] ; then fi

  10. Wcf序列化的循环引用问题1

    1.Wcf数据契约序列化,使用的类DataContractSerializer 默认如果类不指定[DataContract],则序列化类的所有字段,并且在出现循环引用的时候回抛出异常,服务终止 msd ...