我的编程空间,编程开发者的网络收藏夹
学习永远不晚

行迁移对跨分区update效率的影响分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

行迁移对跨分区update效率的影响分析

本篇内容介绍了“行迁移对跨分区update效率的影响分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

测试目的:
行迁移对跨分区update效率的影响。 创建测试表
create table ming.LICISITS_R
(
EID NUMBER(18) not null,
EUTIME DATE  default sysdate ,
dynamicmap VARCHAR2(200) not null
)
PARTITION BY RANGE (EUTIME) INTERVAL (numtoyminterval(1, 'month'))
(partition p1900 values less than(to_date('1900-01-01', 'yyyy-mm-dd')));

alter table ming.LICISITS_R add constraint PK_LICISITS_R primary key(EID) using index ;
alter table ming.LICISITS_R add constraint PK_LG_LICISITS_R unique(dynamicmap) using index ;

开启行迁移
alter table ming.LICISITS_R enable row movement;

每个分区插入10万数据
begin
    for i in  1 .. 100000
    loop
        insert into ming.LICISITS_R values( i,sysdate,i);
    end loop;
    commit;
end;
/ begin
    for i in  100001 .. 200000
    loop
        insert into ming.LICISITS_R values( i,sysdate-31,i);
    end loop;
    commit;
end;
/

开启记录时间
set timing on time on

将SYS_P3695分区数据全部update到SYS_P3696分区
17:24:15 SQL> update ming.LICISITS_R set EUTIME=sysdate-31 where eid<=100000;
commit;

100000 rows updated.

Elapsed: 00:00:06.19
时间为6秒

分区内update
17:25:21 SQL> update ming.LICISITS_R set EUTIME=sysdate-32 where eid<=100000;

100000 rows updated.

Elapsed: 00:00:00.71
只需要0.71秒

再移动回去
17:26:45 SQL> update ming.LICISITS_R set EUTIME=sysdate where eid<=100000;

100000 rows updated.

Elapsed: 00:00:04.31
需要04.31秒

#############################################################
多次测试后发现,10万数据行迁移需要4-6秒,分区内update不用1秒。
############################################################# 在此期间监控记录redo生成量
select * from v$statname where name like '%redo%'
select * from v$sesstat where statistic#=288 and sid=807
744-27306840--165164928 --
分区内update:744-->27306840,大约26M redo
分区间行迁移:27306840-->165164928大约131M redo
将数据删除再插入,生成的redo从165164928-->275735704
此过程大约需要105M redo

“行迁移对跨分区update效率的影响分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

行迁移对跨分区update效率的影响分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

golang管道通信对函数执行效率的影响分析

管道通信对 golang 函数效率的影响取决于:管道缓冲大小:较大的缓冲区提高效率,但增加内存消耗。管道并发程度:较高的并发程度提高效率,但增加 cpu 使用率。Golang 管道通信对函数执行效率的影响分析在 Golang 中,管道是一
golang管道通信对函数执行效率的影响分析
2024-05-02

编程热搜

目录