oracle select max min 优化,select max(),min()为什么要全表扫描?
本帖最后由 wendy 于 2013-7-19 15:27 编辑
版本:oracle 10.2.0.4(64bit).
SQL> set autotrace on;
SQL> select min(income_time) from AGG_QUERY_SESSION_DETAIL;
MIN(INCOME_TIME)
-------------------
2011-01-01 00:00:00
Execution Plan
----------------------------------------------------------
-----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 8 | 743K (2)|
| 1 | SORT AGGREGATE | | 1 | 8 | |
| 2 | INDEX FULL SCAN (MIN/MAX)| IDX_QSD_INCOME_TIME11 | 272M| 2081M| |
-----------------------------------------------------------------------------------------
Note
-----
- 'PLAN_TABLE' is old version
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
4 physical reads
0 redo size
528 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select max(income_time) from AGG_QUERY_SESSION_DETAIL;
MAX(INCOME_TIME)
-------------------
2013-07-18 23:59:40
Execution Plan
----------------------------------------------------------
-----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 8 | 743K (2)|
| 1 | SORT AGGREGATE | | 1 | 8 | |
| 2 | INDEX FULL SCAN (MIN/MAX)| IDX_QSD_INCOME_TIME11 | 272M| 2081M| |
-----------------------------------------------------------------------------------------
Note
-----
- 'PLAN_TABLE' is old version
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
4 consistent gets
3 physical reads
0 redo size
528 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select max(income_time),min(income_time) from AGG_QUERY_SESSION_DETAIL;
MAX(INCOME_TIME) MIN(INCOME_TIME)
------------------- -------------------
2013-07-18 23:59:40 2011-01-01 00:00:00
Execution Plan
----------------------------------------------------------
------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 8 | 743K (2)|
| 1 | SORT AGGREGATE | | 1 | 8 | |
| 2 | TABLE ACCESS FULL| AGG_QUERY_SESSION_DETAIL | 272M| 2081M| 743K (2)|
------------------------------------------------------------------------------------
Note
-----
- 'PLAN_TABLE' is old version
Statistics
----------------------------------------------------------
2 recursive calls
3 db block gets
4273288 consistent gets
4273185 physical reads
132 redo size
610 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
select min(income_time) from table; 走索引;
select max(income_time) from table; 走索引。
select max(income_time),min(income_time) from table;全表扫描。为什么会这样呢?请赐教!
oracle select max min 优化,select max(),min()为什么要全表扫描?相关推荐
- 我说 SELECT COUNT(*) 会造成全表扫描,面试官让我回去等通知
来自:码海 前言 上篇 SQL 进阶技巧(下) 中提到使用以下 sql 会导致慢查询 SELECT COUNT(*) FROM SomeTable SELECT COUNT(1) FROM SomeT ...
- 记录一次没有收集直方图优化器选择全表扫描导致CPU耗尽
场景:数据库升级第二天,操作系统CPU使用率接近100%. 查看ash报告: 再看TOP SQL 具体SQL: select count(1) as chipinCount, sum(bets) as ...
- oracle sql 分区查询语句_oracle11g 表分区后的查询语句如何知道是否进行了全表扫描...
2019-05-10 回答 1. 对返回的行无任何限定条件,即没有where 子句 2. 未对数据表与任何索引主列相对应的行限定条件 例如:在city-state-zip列创建了三列复合索引,那么仅对 ...
- oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...
使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须包含所有查询中参考到的列. 2. ...
- sql语句优化之一:尽量使用索引避免全表扫描
url:http://lzz7658823.iteye.com/?page=3 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量 ...
- 优化一个奇葩表设计上的全表扫描SQL
之前在一个比较繁忙的系统抓到的耗时长.消耗CPU多的一条SQL,如下: SELECT * FROM Z_VISU_DATA_ALARM_LOG T WHERE TO_DATE(T.T_TIMESTR, ...
- mysql in和or扫描全表_MySQL对OR条件查询不支持优化,会进行全表扫描
MySQL对OR条件查询不支持优化,会进行全表扫描:explain extended select * from like1 where name like 'abc%';例如:+----+----- ...
- oracle 索引快速全扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景
使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须 ...
- oracle 索引快速全扫描,使用目录快速全扫描(Index FFS)避免全表扫描的若干场景
使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好 ...
最新文章
- Python fabric实践操作
- mac安装hadoop2-client
- 通过shell访问hive_【HIVE】SHELL调用Hive查询
- MQTT工作笔记0004---CONNECT控制报文1
- java的值传递和引用传递
- 深入理解Flink ---- 系统内部消息传递的exactly once语义
- Oracle 中 start with 递归查询、case when 条件表达式、rowid 伪列去重
- Android 中文 API (24) —— MultiAutoCompleteTextView.CommaTokenizer
- Google Earth Engine(GEE)——点、线、面和省级行政区的加载和展示,以及矢量的过滤筛选
- C语言之指向一维数组的指针
- 就是要弄懂你之—— 同步 异步 阻塞 非阻塞
- UTF-8的编码规则
- word2vec模型原理(附python实现代码)
- 为Windows 7的winsxs目录瘦身,谨慎。
- appium报错:Original error: socket hang up
- OTTO机器人之APP蓝牙控制
- [设计模式]单例模式的几种不同写法比较
- 智能音箱 之 扬声器喇叭介绍
- 《乞力马扎罗山的雪》——海明威
- python3实现微信自动聊天