通过DB_LINK按照分区表抽取数据

DB:11.2.0.3.0
OS:oracle-linux 5.7

建表语句:
create table YOON.YOON_HIS
(
  c_id              NUMBER not null,
  YOON_code      VARCHAR2(30),
  create_time       DATE,
  update_time       DATE not null,
)
partition by range (CREATE_TIME)
(
  partition PART_01 values less than (TO_DATE(‘ 2012-10-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘))
    tablespace YOON
    pctfree 10
    initrans 1
    maxtrans 255,
  partition SYS_P29637 values less than (TO_DATE(‘ 2014-08-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘))
    tablespace YOON
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    ),
  partition SYS_P30739 values less than (TO_DATE(‘ 2014-09-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘))
    tablespace YOON
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    ),
  partition SYS_P31828 values less than (TO_DATE(‘ 2014-10-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘))
    tablespace YOON
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    ),
  partition SYS_P32711 values less than (TO_DATE(‘ 2014-11-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘))
    tablespace YOON
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    ),
  partition SYS_P33052 values less than (TO_DATE(‘ 2014-12-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘))
    tablespace YOON
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    )
);

创建DB_LINK,按分区表来抽取数据。(因数据量过大,大约8亿行,直接抽取会报undo回滚段错误)

按照分区抽数方法如下:

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME<=(TO_DATE(‘ 2012-10-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME>(TO_DATE(‘ 2012-10-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘)) and
CREATE_TIME<=(TO_DATE(‘ 2014-09-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME>(TO_DATE(‘ 2014-09-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘)) and
CREATE_TIME<=(TO_DATE(‘ 2014-10-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME>(TO_DATE(‘ 2014-10-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘)) and
CREATE_TIME<=(TO_DATE(‘ 2014-11-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME>(TO_DATE(‘ 2014-11-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘)) and
CREATE_TIME<=(TO_DATE(‘ 2014-12-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME>(TO_DATE(‘ 2014-12-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘)) and
CREATE_TIME<=(TO_DATE(‘ 2015-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

insert /*+APPEND*/ into YOON.YOON_HIS   select /*+ parallel(t 8) */ * from [email protected]  t 
where CREATE_TIME>(TO_DATE(‘ 2015-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘)) and
CREATE_TIME<=(TO_DATE(‘ 2015-02-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIAN‘));
commit;

时间: 2024-12-28 23:52:51

通过DB_LINK按照分区表抽取数据的相关文章

Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现

Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 1. 应用场景 1 2. 随机抽取数据原理 1 3. 常用的实现方法:::数据库随机函数 1 4. Mssql 的实现 NEWID() 跟rand()  1 5. newid()与rand()的区别 2 6. NEWID() 2 7. 参考 2 1. 应用场景 并发测试 2. 随机抽取数据原理 原理是 循环所有的ID/记录,附加随机函数字段,然后排序as 这个字段.. 3. 常用的实现方法:::数据库随机

Sql Server随机抽取数据效率优化

Sql Server随机抽取数据效率优化2013-05-11 1 个评论 作者:菜光收藏 我要投稿Sql Server随机抽取数据效率优化 山人我最近遇到一件很纠结的事情,就是如何快速的从数据表里随机抽取一条数据. 我生成了一个简单的数据表,并且导入了500W条数据进行测试. 下图为第一次采用的SQL语句: Declare @d DatetimeSet @d=getdate()SELECT top 1[ActivityID] ,[CardNo] ,[Password] ,[State] ,[Cr

通过表名和时间查看hive分区表的数据

[linux-]$  /home/script/listHive.py  ta_name_1002_user_search_log_day  20180626 #!/usr/bin/env python # -*- coding: utf-8 -*- ########################################## # 通过表名和时间查看hive分区表的数据 # len(sys.argv)--输入参数个数 # sys.argv[1] -- 表名 # sys.argv[2] -

Oracle 10g使用amdu抽取数据文件

环境:OEL 5.7 + Oracle 10.2.0.5 RAC 需求:实验在Oracle 10g环境使用amdu抽取数据库文件 本文主要目的是介绍3个知识点: 1.使amdu可以在oracle 10g环境中使用 2.使kfed可以在oracle 10g环境中使用 3.amdu如何抽取损坏的ASM磁盘组数据 1.使amdu可以在oracle 10g环境中使用 在Oracle 10g环境,并没有自带amdu工具,需要自行去下载: 具体可以参考MOS文档: Placeholder for AMDU

数据仓库之抽取数据:通过bcp命令行导入数据

原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过bcp命令行导入数据.bcp方式相对于其他方式来说,速度更快,是做了优化的. 以下为bcp命令行常用的参数,注意大小写: -c  以char作为存储类型 -w  和-c类似,只有当使用unicode字符集拷贝数据时使用n

数据仓库之抽取数据:openrowset函数带bulk操作符的用法

原文:数据仓库之抽取数据:openrowset函数带bulk操作符的用法 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过openrowset函数带bulk操作符的用法,导入.导出.更新数据. 带bulk操作符的方式相对于其他方式来说,速度更快. 使用方法: 第1种用法: openrowset ( bulk 要加载结果

数据仓库之抽取数据:通过openrowset执行存储过程

原文:数据仓库之抽取数据:通过openrowset执行存储过程 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过openrowset函数调用存储过程,但是存储过程中不能带参数. 1.开启即席查询 --修改高级参数 sp_configure 'show advanced options',1 go --允许即席分布式查询

分区表的数据删除

问题:堆表按天做了分区,表中只保留最近7天的数据.最近发现此表的数据空间明显比之前大,之前2G:现在6G,持续关注几天表中记录数保持平衡,但数据空间却在进一步增长.对应表所在的文件组也不停在自增长.分析:使用sys.dm_db_index_physical_stats查看表的碎片情况,发现在已删除记录的分区中堆的区碎片(avg_fragmentation_in_percent).数据页总数(page_count)不为零.查看另一个库下此表的备份表(同为分区表,保留最近30天的数据),表的数据空间

kettle 6.1 按时间循环增量抽取数据

场景:假设有一张表数据量很大,需要按一个时间来循环增量抽取 方法:主要是通过JOB自身调用,实现循环调用,类似于 函数自调用 的循环. 1.JOB全图: 2.获取增量时间,并设置增量时间环境变量 3.通过增量环境变更,获取本次 增量数据 4.判断增量时间是否大于当前时间,判断是否继续执行一次的增量 5.调用总JOB自身,实现循环调用