oracle 查询当天记录 三种方法效率比较
via: http://my.oschina.net/baishi/blog/293742
-- 查询一表中当天生成的数据
-- 原表mobilefrends中的cdate字段上有索引,创建索引语句是:create index mobilefrends_cdate_idx on mobilefrends(cdate);
---------------------------------------------------------------------------------------------------------------------
-- 方法一:用to_char()函数
hll@SZTYORA> select count(*) from mobilefrends where to_char(cdate,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd');
COUNT(*)
----------
82119
已用时间: 00: 00: 17.18
执行计划
----------------------------------------------------------
Plan hash value: 3731074549
------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 8 | 11773 (16)| 00:02:22 |
| 1 | SORT AGGREGATE | | 1 | 8 | | |
|* 2 | INDEX FAST FULL SCAN| MOBILEFRENDS_CDATE_IDX | 129K| 1012K| 11773 (16)| 00:02:22 |
------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter(TO_CHAR(INTERNAL_FUNCTION("CDATE"),'yyyy-mm-dd')=TO_CHAR(SYSDATE@!-1,'yyyy
-mm-dd'))
统计信息
----------------------------------------------------------
1 recursive calls
0 db block gets
36896 consistent gets
0 physical reads
0 redo size
345 bytes sent via SQL*Net to client
338 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
---------------------------------------------------------------------------------------------------------------------
-- 方法二:用trunc()函数
hll@SZTYORA> select count(*) from mobilefrends where trunc(cdate)=trunc(sysdate);
COUNT(*)
----------
82119
已用时间: 00: 00: 16.32
执行计划
----------------------------------------------------------
Plan hash value: 3731074549
------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 8 | 12580 (22)| 00:02:31 |
| 1 | SORT AGGREGATE | | 1 | 8 | | |
|* 2 | INDEX FAST FULL SCAN| MOBILEFRENDS_CDATE_IDX | 129K| 1012K| 12580 (22)| 00:02:31 |
------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter(TRUNC(INTERNAL_FUNCTION("CDATE"))=TRUNC(SYSDATE@!-1))
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
36896 consistent gets
0 physical reads
0 redo size
345 bytes sent via SQL*Net to client
338 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
---------------------------------------------------------------------------------------------------------------------
-- 方法三:不用函数
hll@SZTYORA> select count(*) from mobilefrends where cdate>=trunc(sysdate) and cdate<trunc(sysdate)+1;
COUNT(*)
----------
82119
已用时间: 00: 00: 00.43
执行计划
----------------------------------------------------------
Plan hash value: 2668176725
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 8 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 8 | | |
|* 2 | FILTER | | | | | |
|* 3 | INDEX RANGE SCAN| MOBILEFRENDS_CDATE_IDX | 48 | 384 | 3 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter(TRUNC(SYSDATE@!-1)<TRUNC(SYSDATE@!))
3 - access("CDATE">=TRUNC(SYSDATE@!-1) AND "CDATE"<TRUNC(SYSDATE@!))
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
221 consistent gets
0 physical reads
0 redo size
345 bytes sent via SQL*Net to client
338 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
---------------------------------------------------------------------------------------------------------------------
-- 由上三种方法可见:
-- 方法一:用to_char()函数,耗时17.18秒,逻辑读为36896次,执行的是全索引扫描;
-- 方法二:用trunc()函数,耗时16.32秒,逻辑读也是36896次,执行的也是全索引扫描;
-- 方法三:不用函数,耗时0.43秒,逻辑读为221次,执行的是索引范围扫描;
相关推荐
【Oracle维护手册】是指导ORACLE...日志查询后,建议将当天的日志移动到特定目录,便于日后查阅。 通过遵循上述维护步骤和问题处理策略,Oracle数据库管理员能够有效地管理和维护数据库,确保业务连续性和数据安全性。
为了有效地跟踪和追溯商品库存,"ORACLE库存快照创建和查询工具" 提供了一个高效的方法。这个工具利用Oracle的存储过程功能,每天凌晨0点自动创建库存的快照,确保了库存数据的实时性和历史可追溯性。 首先,我们要...
### ORACLE ERP 11i表结构字段中文名称解析 #### BOM 模块常用表结构 ##### 1. **bom_bill_of_materials** **表名**: bom.bom_bill_of_materials **说明**: BOM 清单父项目表 **主要字段**: - **BILL_SEQUENCE...
Oracle数据库是企业级的重要数据存储系统,而作为Oracle DBA(数据库管理员),日常维护工作是确保数据库高效、稳定运行的关键。以下是对Oracle日常维护实例的详细说明: 首先,DBA每天需要对Oracle数据库的运行...
在Oracle数据库环境中,慢SQL查询是影响系统性能的关键因素,因此对其进行监控和分析至关重要。本文将详细介绍如何在Oracle中进行慢SQL监控,并提供一个实际的脚本来实现这一过程。 首先,我们通过数据准备来模拟一...
### Oracle订单管理系统的知识点概述 #### 一、订单管理概览 (Order Management Overview) - **功能定位**: Oracle 订单管理系统提供了全面的工具来管理和控制企业的销售订单操作。 - **核心功能**: 包括订单组织...
本文将详细介绍一种实现Oracle数据库自动备份和压缩的方法,以解决因备份文件占用过多空间而导致的问题。 #### 二、准备工作 为了实现Oracle数据库的自动备份与压缩,我们需要准备以下几项: 1. **备份环境搭建**...
### Oracle数据库备份方案详解 #### 一、概要 数据安全是任何系统设计与运维中的核心要素之一。在日常工作中,不仅要确保数据库的稳定运行,还需要采取有效措施防止数据丢失或损坏。对于突发情况,良好的数据库...
在Oracle数据库管理中,日志记录是至关重要的,特别是对于归档日志,它们记录了数据库的所有更改,确保数据安全性和可恢复性。查询每小时归档日志产生数量可以帮助DBA(数据库管理员)监控数据库活动,分析系统性能,...
此外,还设计了一个名为SM_RECEIVE_T的表来存储当天接收到的短信,而SM_RECEIVE_T_LOG用于归档历史接收记录。 【优势与意义】 建立统一的短信平台有以下几点好处:首先,资源得到有效整合,避免了重复建设和投入;...
Oracle数据库的备份模式主要有三种:全备份、差异增量备份和累计增量备份。全备份针对所有数据进行备份,适合系统上线和长时间未备份后使用;差异增量备份备份上次备份后更新的数据,适合当日备份;累计增量备份则...
- 每周对数据库进行健康检查,包括检查数据库对象的增长情况,分析性能瓶颈,优化SQL查询,以及评估索引的效率。 - 对数据库对象的状态进行检查,确保表、索引、视图等没有损坏或异常。 7. **备份与恢复策略**: ...
Oracle ASCP(Advanced Supply Chain Planning)是Oracle公司提供的一个高级供应链计划工具,它帮助企业进行复杂的库存管理和生产计划。本操作手册主要围绕Oracle ASCP在备份、恢复和日常操作中的实践展开,尤其关注...
- **当日注销图书查询**:具备查询及恢复功能,减少错误发生。 ##### 2. 业务管理 - **图书借阅与归还**:集成合法性验证、信息动态生成及超期罚款计算,简化操作流程。 - **人员档案管理**:全面记录读者与员工...
这需要掌握数据库管理系统,如MySQL或Oracle,以及SQL查询语言。数据安全性和备份恢复策略也是关键。 6. **用户体验**:良好的用户界面设计,包括清晰的指示、简洁的操作流程,是提升满意度的重要因素。前端开发...
在Oracle数据库中,一天通常被定义为从当天的凌晨00:00:00开始,到次日00:00:00之前,不包括次日的凌晨。因此,如果你想要查询2014年10月1日的数据,你需要包含所有在2014年10月1日00:00:00至2014年10月2日00:00:00...
- **专家当天排班表库**:显示当天所有专家的排班情况。 - **科室处方月报表库**:统计每月各科室开出的处方数量。 #### 六、程序各模块的实现技术 ##### 6.2 各模块实现的主要相关技术 - **用户登录**:采用...
"知识点:SQL根据一个日期,返回1号至当日所有日期.sql"这个文件名暗示了一个更具体的应用,即生成从指定日期开始到当天的所有日期。 为了实现这个功能,我们可以先获取当前日期,然后用上述方法生成从指定日期到...