PL/SQL 0.几秒出结果,SQL效率一定高吗?
今天开发问我一个问题,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效率一定高吗?的更多相关文章
- sql 批量插入数据到Sqlserver中 效率较高的方法
使用SqlBulk #region 方式二 static void InsertTwo() { Console.WriteLine("使用Bulk插入的实现方式"); Stopwa ...
- 数据库查询SQL语句的时候如何写会效率更高?
引言 以前刚开始做项目的时候,开发经验尚浅,遇到问题需求只要把结果查询出来就行,至于查询的效率可能就没有太多考虑,数据少的时候还好,数据一多,效率问题就显现出来了.每次遇到查询比较慢时,项目经理就会问 ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- [SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題
原文:[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題 最近因為在查一個SQL的效能問題,透過 sys.dm_os_wait_stats 來取得To ...
- Microsoft-PetSop4.0(宠物商店)-数据库设计-Sql
ylbtech-DatabaseDesgin:Microsoft-PetSop4.0(宠物商店)-数据库设计-Sql DatabaseName:PetShop(宠物商店) Model:宠物商店网站 T ...
- 由一次 UPDATE 过慢 SQL 优化而总结出的经验
最近,线上的 ETL 数据归档 SQL 发生了点问题,有一个 UPDATE SQL 跑了两天还没跑出来: update t_order_record set archive_id = '420a7fe ...
- SQL<>0查询不到NUll的值
这几天遇到这样一个问题,sql中写<>0,刚好某个记录是NULL,道理上是满足<>0的啊,可是就是抽不出来,关于这个问题,到处找了点资料,算是这里 写一个总结出来. 用java ...
- ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引
WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行 ...
随机推荐
- Tomcat中server.xml配置及Context的配置说明
server.xml配置简介 下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档 server: port 指定一个端口,这个 ...
- EasyUEFI
---------------------------------http://www.easyuefi.com/downloads/EasyUEFI_Setup.exe--------------- ...
- BootStrap--Tables(表格) MVC中不刷新做增,删,改(C#)
自带的Tables会有自动分页,搜索等一些动能,很方便,唯一的不足就是添加,修改,删除数据需要刷新页面,并不能静态. 下面说的是如何不刷新页面(Ajax)去执行增,删,改操作. 需要用到的样式,JS库 ...
- Cobar是提供关系型数据库(MySQL)分布式服务的中间件
简介 Cobar是提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明. 产品在阿里巴巴稳定运行3年以上. 接管了3000+ ...
- java中基于TaskEngine类封装实现定时任务
主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...
- 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完毕port(Completion Port)具体解释 ...
- ubuntu下mysql中文乱码问题
本来就是想弄个网页往数据库里添加数据的,然后就发现了mysql的中文乱码问题,弄了半天解决方法如下: 首先停mysql服务,编辑配置文件my.cnf $ sudo stop mysql $sudo v ...
- 《C专家编程》第一天
1.2 C语言的早期体验 1)C语言的基本数据类型直接与底层硬件相对应.C语言不存在内置的复数类型.C语言一开始不支持浮点类型,直到硬件系统能够直接支持浮点数之后才增加了对它的支持. 2)auto关键 ...
- sass笔记-1|Sass是如何帮你又快又好地搞定CSS的
Sass学习笔记持续整理中,开篇不讲怎么安装,sass是什么,这些搜索引擎会告诉你,我们从sass的作用开始讲起,知道sass用来干什么,有什么作用,我们才能相信用sass的好处,并且时时刻刻想着sa ...
- jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)
一.jQuery Easy UI (适应屏幕分辨率大小)布局(Layout) 1.首先应用的是jquery-easyui-1.4 版本(版本不同,兼容性不同) 2.实现整个页面的布局( layout: ...