最近改一个BUG,需要根据时间区间进行查询,但是反应查询时间特别长,
select *
from A t, B mbf, C m
where t.firmId = mbf.firmId
and mbf.brokerId = m.brokerId
and trunc(cleardate ) <= to_Date('20120312','yyyymmdd')
and trunc(cleardate ) >= to_Date('20110101','yyyymmdd')
数据量
select count(*) from A --105824591
select count(*) from B --19993
select count(*) from C --650
select *
from A t, B mbf, C m
where t.firmId = mbf.firmId
and mbf.brokerId = m.brokerId
and cleardate <= to_Date('20120312','yyyymmdd')
and cleardate >= to_Date('20110101','yyyymmdd'
带TRUNC执行时间稳定在12S,不带TRunc执行时间稳定在1-2S
总结:对于历史表的归档,如果不是对时间要求很严格,可以将时间设置成年月日的形式,提高查询效率。
分享到:
相关推荐
【标题】"trunc-138268-20210420-x86-win-64-ent-8.1.2.5-occi-vs2019.zip" 提供的信息表明这是一个针对Windows x86_64平台的企业版软件包,发布日期为2021年4月20日,版本号为8.1.2.5。其中“trunc”可能是一个简写...
描述还提到建议使用local index,这表明在使用分区表时,应当考虑使用分区范围索引,它可以与特定的分区表进行关联,从而优化查询性能。 标签“oracle分区表 自动维护”概括了脚本的核心功能和使用场景,说明脚本...
- 锁定表查询与解锁:通过`V$SESSION`和`V$LOCKED_OBJECT`视图可查询锁定的表,并使用`ALTER SYSTEM KILL SESSION`命令释放会话,解决锁定问题。 熟悉并掌握这些SQL语句和相关知识点,不仅可以帮助追踪表的更改,还...
查询表空间信息:使用`SELECT T.NAME 表空间名称, D.PATH 表文件路径, T.TYPE$ 表空间类型, T.STATUS$ 表空间状态, T.FILE_NUM 包含的文件数, D.TOTAL_SIZE*16/1024 总大小, D.FREE_SIZE*16/1024 空闲大小, TRUNC(...
在Oracle数据库中,日期处理是日常操作的重要部分,特别是在存储和分析历史数据时。本文将深入探讨Oracle中处理日期格式字段的关键知识点,并介绍一些常用的日期和字符转换函数。 1. **日期格式化**: Oracle提供...
这里可以看到,尽管开发人员注意到了`_TL`后缀的表是用来处理国际化问题的,但实际上并未在查询中充分利用这一特性。代码中还包含了复杂的逻辑,例如日期范围的判断和对`DATE_END`字段的处理等。 **3. 症状后果** ...
- `TRUNC(first_time, 'HH')`: 使用`TRUNC`函数按小时截取时间戳,得到每个小时的时间点。 - `a.BLOCKS`: 表示每个归档日志记录中的块数量。 - `a.BLOCK_SIZE`: 表示每个块的大小。 2. **主查询**: 主查询计算每...
### 一些SQL优化案例 ...接下来的部分将探讨其他几种常见的SQL优化案例,包括不恰当使用hint导致的问题、数据库字段设计不当导致的全表扫描、缺乏合适索引的情况、以及语句书写不当导致的性能问题等。
- **表结构查看**:使用`desc 表名`命令查看表的结构信息。 - **常用表**:文档提到了几个常用的测试表,如DEPT(部门表)、EMP(员工表)和SALGRADE(薪资等级表)。 #### 六、SQL语言分类 - **DQL (Data Query ...
本章可能介绍了Oracle数据库的基本架构,包括数据存储结构(如表空间、段、区、块)、数据库实例和进程、以及Oracle的版本历史和主要特性。 **第二章 简单查询** 在这一章中,学习者会接触到SQL的基础,如SELECT...
对于大量时间序列数据,使用分区表可以提高查询性能。Oracle支持基于日期的分区,如按月或按年分区。 9. 触发器与日期: 可以创建基于日期的触发器,如在特定日期执行某些操作,或者在日期字段满足条件时触发事件。...
- **基本SELECT语句**:介绍如何使用SELECT语句从一个或多个表中检索数据。 - **WHERE子句**:解释如何利用WHERE子句筛选符合条件的记录。 - **ORDER BY子句**:说明如何按特定顺序对结果集进行排序。 #### 8. 限定...
- **数值函数**:掌握MOD、TRUNC等数值处理函数的使用技巧。 - **转换函数**:学习TO_CHAR、TO_NUMBER等类型转换函数的使用方法。 #### 五、分组函数 - **GROUP BY子句**:讲解GROUP BY子句的作用及使用方法。 - **...
本文将深入探讨SQL数据库日志清理的重要性和具体操作,以及如何使用名为"trunc.exe"的工具来高效地进行日志管理。 首先,理解日志在SQL数据库中的作用至关重要。日志文件,例如SQL Server的事务日志(Transaction ...
- **在一个SELECT语句中使用多个表**:通过INNER JOIN、LEFT JOIN、RIGHT JOIN等连接方式来组合不同表中的数据。 - **等值联合**:基于相等条件连接表。 - **不等值联合**:基于不等条件连接表。 - **外部联合与内部...
- **Oracle概述**:介绍Oracle公司的历史、产品线,特别是Oracle数据库的发展历程。 - **安装配置**:详细介绍Oracle数据库的安装步骤、配置方法。 - **基本操作**:演示如何创建数据库、登录数据库、查看数据库信息...
- **口令历史**:记录用户曾经使用的口令,防止重复使用。 - **删除Profile**:删除已经定义的Profile。 ### Oracle表的管理 这一部分涉及到了Oracle表的创建、删除、数据的增删改查等基本操作。 - **表创建删除**...
5. **第5章 多表查询**:多表查询是数据库操作的关键,包括JOIN(内连接、外连接)、UNION(并集)、INTERSECT(交集)和EXCEPT(差集)等操作,以及如何使用子查询进行复杂的数据联合。 6. **第6章 分组函数**:...
- **WITH子句**:使用WITH子句创建临时表。 - **RANK、DENSE_RANK和ROW_NUMBER**:行排名函数的使用方法。 - **窗口函数**:OVER子句的使用,包括LAG、LEAD等。 - **分区函数**:PARTITION BY子句的使用。 #### 第...