`

关于历史表使用trunc的问题

 
阅读更多

最近改一个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

    【标题】"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”可能是一个简写...

    Oracle 分区表自动维护脚本

    描述还提到建议使用local index,这表明在使用分区表时,应当考虑使用分区范围索引,它可以与特定的分区表进行关联,从而优化查询性能。 标签“oracle分区表 自动维护”概括了脚本的核心功能和使用场景,说明脚本...

    ORACLE查询表最近更改数据的方法

    - 锁定表查询与解锁:通过`V$SESSION`和`V$LOCKED_OBJECT`视图可查询锁定的表,并使用`ALTER SYSTEM KILL SESSION`命令释放会话,解决锁定问题。 熟悉并掌握这些SQL语句和相关知识点,不仅可以帮助追踪表的更改,还...

    达梦数据库常用系统视图及查询语句.pdf

    查询表空间信息:使用`SELECT T.NAME 表空间名称, D.PATH 表文件路径, T.TYPE$ 表空间类型, T.STATUS$ 表空间状态, T.FILE_NUM 包含的文件数, D.TOTAL_SIZE*16/1024 总大小, D.FREE_SIZE*16/1024 空闲大小, TRUNC(...

    最新Oracle中日期格式字段处理.docx

    在Oracle数据库中,日期处理是日常操作的重要部分,特别是在存储和分析历史数据时。本文将深入探讨Oracle中处理日期格式字段的关键知识点,并介绍一些常用的日期和字符转换函数。 1. **日期格式化**: Oracle提供...

    Oracle SQL反模式

    这里可以看到,尽管开发人员注意到了`_TL`后缀的表是用来处理国际化问题的,但实际上并未在查询中充分利用这一特性。代码中还包含了复杂的逻辑,例如日期范围的判断和对`DATE_END`字段的处理等。 **3. 症状后果** ...

    归档量查询

    - `TRUNC(first_time, 'HH')`: 使用`TRUNC`函数按小时截取时间戳,得到每个小时的时间点。 - `a.BLOCKS`: 表示每个归档日志记录中的块数量。 - `a.BLOCK_SIZE`: 表示每个块的大小。 2. **主查询**: 主查询计算每...

    一些sql 优化案例

    ### 一些SQL优化案例 ...接下来的部分将探讨其他几种常见的SQL优化案例,包括不恰当使用hint导致的问题、数据库字段设计不当导致的全表扫描、缺乏合适索引的情况、以及语句书写不当导致的性能问题等。

    Oracle数据库整理学习手册

    - **表结构查看**:使用`desc 表名`命令查看表的结构信息。 - **常用表**:文档提到了几个常用的测试表,如DEPT(部门表)、EMP(员工表)和SALGRADE(薪资等级表)。 #### 六、SQL语言分类 - **DQL (Data Query ...

    Oracle SQL

    本章可能介绍了Oracle数据库的基本架构,包括数据存储结构(如表空间、段、区、块)、数据库实例和进程、以及Oracle的版本历史和主要特性。 **第二章 简单查询** 在这一章中,学习者会接触到SQL的基础,如SELECT...

    oracle关于日期的查询语句

    对于大量时间序列数据,使用分区表可以提高查询性能。Oracle支持基于日期的分区,如按月或按年分区。 9. 触发器与日期: 可以创建基于日期的触发器,如在特定日期执行某些操作,或者在日期字段满足条件时触发事件。...

    Oracle课程目录

    - **基本SELECT语句**:介绍如何使用SELECT语句从一个或多个表中检索数据。 - **WHERE子句**:解释如何利用WHERE子句筛选符合条件的记录。 - **ORDER BY子句**:说明如何按特定顺序对结果集进行排序。 #### 8. 限定...

    oracle入门基础教程全面详细

    - **数值函数**:掌握MOD、TRUNC等数值处理函数的使用技巧。 - **转换函数**:学习TO_CHAR、TO_NUMBER等类型转换函数的使用方法。 #### 五、分组函数 - **GROUP BY子句**:讲解GROUP BY子句的作用及使用方法。 - **...

    SQL数据库日志清理工具

    本文将深入探讨SQL数据库日志清理的重要性和具体操作,以及如何使用名为"trunc.exe"的工具来高效地进行日志管理。 首先,理解日志在SQL数据库中的作用至关重要。日志文件,例如SQL Server的事务日志(Transaction ...

    韩顺平玩转oracle视频的文档

    - **口令历史**:记录用户曾经使用的口令,防止重复使用。 - **删除Profile**:删除已经定义的Profile。 ### Oracle表的管理 这一部分涉及到了Oracle表的创建、删除、数据的增删改查等基本操作。 - **表创建删除**...

    oracle课件pdf格式的

    5. **第5章 多表查询**:多表查询是数据库操作的关键,包括JOIN(内连接、外连接)、UNION(并集)、INTERSECT(交集)和EXCEPT(差集)等操作,以及如何使用子查询进行复杂的数据联合。 6. **第6章 分组函数**:...

    超详细ORACLE培训带实例带书签目录

    - **WITH子句**:使用WITH子句创建临时表。 - **RANK、DENSE_RANK和ROW_NUMBER**:行排名函数的使用方法。 - **窗口函数**:OVER子句的使用,包括LAG、LEAD等。 - **分区函数**:PARTITION BY子句的使用。 #### 第...

Global site tag (gtag.js) - Google Analytics