`

oracle 归档数据查询(分区查询)

阅读更多
查询201212月份数据记录的SQL如下:
SELECT COUNT(DISTINCT(c.caller_nbr)) AS emp_use_count  FROM tab_pub_calllog c WHERE TO_CHAR(c.end_time,'yyyymm')='201212'

等了2个小时还没结果...

找数据库维护人员解决,给出如下查询SQL语句
SELECT COUNT(DISTINCT(emp_use_count)) FROM ( 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121201) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121202) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121203) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121204) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121205) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121206) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121207) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121208) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121209) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121210) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121211) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121212) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121213) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121214) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121215) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121216) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121217) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121218) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121219) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121220) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121221) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121222) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121223) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121224) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121225) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121226) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121227) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121228) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121229) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121230) c 
UNION ALL 
SELECT DISTINCT(c.caller_nbr) AS emp_use_count  FROM tab_pub_calllog_his PARTITION(p_20121231) c )


执行不到6秒,结果就出来了,真是够强悍的!
分享到:
评论

相关推荐

    oracle数据库表按年分区脚本实战例子

    在Oracle数据库中,分区是一种强大的数据管理技术,它允许我们将大型表分割成更小、更易管理和查询的部分,称为分区。这种技术对于处理大量数据的企业级应用尤其有用,因为它可以提高查询性能,优化存储,并简化数据...

    oracle11g expdp impdp 分区表重映射导出导入数据迁移方案

    oracle expdp impdp 分区表重映射导出导入 数据迁移方案,以SI01用户为例子,将用户分区表导出后,将分区表重映射到新的表空间,完成数据迁移和检查。照方案例子按步去做,一定能成功。

    oracle自动建立表分区脚本

    9. **优化建议**:合理选择分区策略,确保热数据集中在少数分区,冷数据分区可以进行压缩或归档,以节省存储空间。同时,使用分区索引进一步提升查询效率。 10. **监控与调整**:实施分区后,应持续监控数据库性能...

    oracle自动一年建立表分区.zip

    在Oracle数据库系统中,表分区是一种高级特性,用于提高数据管理效率、提升查询性能和简化维护工作。"Oracle自动一年建立表分区.zip"文件显然包含了用于自动创建按时间(一年)分区的Oracle脚本。这样的脚本对于处理...

    Oracle归档日志空间不足引发的问题及归档日志的检测与删除

    综上所述,了解和管理Oracle归档日志对于确保数据库的稳定运行至关重要。通过对归档日志的监控、适时的删除策略和合理的空间规划,可以有效避免因归档日志空间不足引发的问题,保障数据库的高效运行。

    Oracle表分区详解

    Oracle数据库中的表分区是数据库管理的一种高级技术,它允许我们将大型表分解成更小、更易管理和查询的部分,从而提高数据存储和检索的效率。在本文中,我们将深入探讨Oracle表分区的各个方面,包括其重要性、类型、...

    Oracle大表分区的技术

    Oracle大表分区是一种高效的数据管理策略,用于处理大型数据集,提高查询性能并简化数据库维护。在Oracle数据库系统中,分区技术允许将一个大表分解为较小、更易管理的部分,每个部分称为一个分区。这样做有多种好处...

    Oracle海量数据自动化归档平台的研究与实现.pdf

    Oracle海量数据自动化归档平台的研究与实现 一、研究背景与目的 电信行业中每月会产生大量的数据,这些数据若不进行有效的管理,会给存储空间、系统性能和数据维护带来严重挑战。随着数据量的快速增长,如何合理...

    Oracle和数据结构

    1. 分区(Partitioning):大型表可以通过分区将数据分布在多个物理段上,提高查询效率和管理便捷性。常见的分区策略有范围分区、列表分区、哈希分区和复合分区。 2. 分片(Sharding):分片是数据库水平切分的一种...

    Oracle归档日志空间不足引发的问题及解决方法

    ### Oracle归档日志空间不足引发的问题及解决方法 #### 一、问题概述 在Oracle数据库的日常管理和维护过程中,可能会遇到归档日志空间不足的情况。这种情况一旦发生,不仅会影响到数据库的正常运行,还可能导致...

    oracle分区表详解

    对于包含历史数据的表,尤其是以新数据不断添加到最新分区而其他数据保持只读的表,分区可以提高查询效率和管理上的便利。 Oracle分区类型 Oracle数据库提供了多种分区类型,包括: 1. 范围分区(Range):根据列值...

    Oracle数据库分区管理.docx

    4. 信息生命周期管理:通过分区,可以实现数据的“分层归档”,即将不再频繁访问的历史数据存放在低成本的存储上,同时保持在线状态,降低了总拥有成本。 Oracle提供多种基本的分区策略,包括: - 范围分区:基于...

    oracle_分区表数据定期迁移到其他数据库测试方案

    3. **数据清理**:对于具有时间序列特性的数据,如日志记录或财务报表,可以通过删除过时的数据分区来清理旧数据。 ### 二、Oracle 分区表迁移背景与目的 本文档中的迁移方案旨在实现将Oracle分区表中的数据定期...

    oracle优化报表查询.zip

    此外,考虑使用分区、分层和归档策略来管理历史数据。 通过上述这些策略和技巧,我们可以对Oracle报表查询进行深度优化,提高系统的响应速度,确保用户能够及时获取所需的数据。然而,优化是一个持续的过程,需要...

    Oracle甲骨文原厂分区表培训教程-详细讲解

    Oracle甲骨文数据库中的分区表是数据库管理中的一个重要概念,尤其在处理大数据量时,分区表能够显著提升数据查询和管理的效率。分区表的基本思想是将一张大的表逻辑上分为若干个小的部分,每个部分(即分区)在物理...

    Oracle10g表分区技术管理.pdf

    Oracle 10g 表分区技术是数据库管理系统中一种高效的数据组织和管理方式,尤其适合处理大规模数据。这种技术能够显著提升查询性能,简化数据维护,并优化管理任务。Oracle 从 Oracle 8 开始引入分区功能,并在后续...

    Linux 磁盘手动分区(涉及oracle)

    4. **归档日志分区**:Oracle数据库的归档日志文件也应存放在单独的分区或逻辑卷上,以确保数据的安全性。 #### 五、总结 通过手动进行磁盘分区,不仅可以更精细地控制系统的存储资源分配,还能针对特定的应用场景...

    oracle资源表分区

    - **历史数据归档**:对于记录了大量历史数据的表,可以通过时间戳字段进行范围分区,便于历史数据的管理和查询。 - **高并发读写操作**:通过合理地分散数据到不同的物理设备上,可以有效减轻单一设备的压力,提高...

    oracle 常用SQL查询

    在Oracle数据库管理中,SQL查询是日常操作的核心部分,它用于获取、分析和操作数据库中的数据。以下是一些常用的Oracle SQL查询,这些查询涵盖了从基础的表空间信息到复杂的数据库对象状态和性能监控。 1. **查看表...

Global site tag (gtag.js) - Google Analytics