Oracle 12.2新特性----在线move表
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Oracle12.2版本之前,对表做move操作时会对表加exclusive锁,表上无法执行DML操作。虽然move操作有ONLINE子句,但只适用于IOT表,不适用于堆表。这就意味着在对表做move
千家信息网最后更新 2025年01月20日Oracle 12.2新特性----在线move表
Oracle12.2版本之前,对表做move操作时会对表加exclusive锁,表上无法执行DML操作。虽然move操作有ONLINE子句,但只适用于IOT表,不适用于堆表。这就意味着在对表做move操作时,无法执行任何DML操作,如果对关键表做move操作时只能停业务来完成。到了Oracle12.2版本,推出了一个新特性----在线move表,对于普通堆表可以在move过程中执行DML操作。
下面以11.2.0.4和12.2.0.1这两个版本为对比,观察这一新特性。
1、11.2.0.4版本的move操作
--创建测试表zx@ORA11G>create table t as select * from dba_objects;Table created.Elapsed: 00:00:00.26zx@ORA11G>insert into t select * from t;79608 rows created.Elapsed: 00:00:00.22zx@ORA11G>/159216 rows created.Elapsed: 00:00:00.38zx@ORA11G>/318432 rows created.Elapsed: 00:00:03.63zx@ORA11G>/636864 rows created.Elapsed: 00:00:05.40zx@ORA11G>/1273728 rows created.Elapsed: 00:00:24.57zx@ORA11G>select bytes/1024/1024 from user_segments;BYTES/1024/1024--------------- 392Elapsed: 00:00:00.07zx@ORA11G>commit;Commit complete.Elapsed: 00:00:00.01zx@ORA11G>alter system flush buffer_cache;System altered.Elapsed: 00:00:27.90--不做move操作时delete操作时间zx@ORA11G>delete from t where object_name='T';32 rows deleted.Elapsed: 00:00:00.13zx@ORA11G>rollback;Rollback complete.--执行move--session 1zx@ORA11G>select userenv('sid') from dual;USERENV('SID')-------------- 1150--session 2 zx@ORA11G>select userenv('sid') from dual;USERENV('SID')-------------- 15--session 1zx@ORA11G>alter table t move tablespace examples;Table altered.Elapsed: 00:00:02.45--session 2zx@ORA11G>delete from t where object_name='T';32 rows deleted.Elapsed: 00:00:02.18zx@ORA11G>rollback;Rollback complete.--session 3sys@ORA11G>select /*+ rule */ sid,lmode,request,type,block from v$lock where sid in (1150,15); SID LMODE REQUEST TY BLOCK---------- ---------- ---------- -- ---------- 1150 6 0 TM 1 1150 4 0 AE 0 1150 6 0 TS 0 1150 6 0 TX 0 1150 2 0 XR 0 15 4 0 AE 0 15 0 3 TM 07 rows selected
从上面的查询中可以看出表move操作阻塞了delete操作。
2、下面来看12.2版本的在线move操作,需要添加online关键字。
--创建测试表zx@ORA12C>select segment_name,bytes/1024/1024 from user_segments;SEGMENT_NAME BYTES/1024/1024------------------------------ ---------------T 392--在没有move时delete操作时间zx@ORA12C>delete from t where object_name='USER_TABLES';256 rows deleted.Elapsed: 00:00:00.44zx@ORA12C>rollback;Rollback complete.--session 1zx@ORA12C>select userenv('sid') from dual;USERENV('SID')-------------- 23--session 2zx@ORA12C>select userenv('sid') from dual;USERENV('SID')-------------- 27--执行move操作--session 1zx@ORA12C>alter table t move online tablespace examples;Table altered.Elapsed: 00:00:34.73--session 2zx@ORA12C>delete from t where object_name='USER_TABLES';256 rows deleted.Elapsed: 00:00:00.97zx@ORA12C>rollback;Rollback complete.--session 3sys@ORA12C>select /*+ rule */ sid,lmode,request,type,block from v$lock where sid in (23,27); SID LMODE REQUEST TY BLOCK---------- ---------- ---------- -- ---------- 27 3 0 TM 0 27 4 0 AE 0 27 6 0 TX 0 23 4 0 AE 0 23 6 0 OD 0 23 3 0 DL 0 23 3 0 DL 0 23 6 0 TS 0 23 6 0 TM 0 23 4 0 TM 0 23 6 0 TM 0 23 3 0 TM 0 23 6 0 TX 0 23 6 0 TX 0 23 3 0 TM 0 23 3 0 TM 016 rows selected.
从上面的操作可以看出12.2的move操作没有阻塞delete操作。
参考:http://docs.oracle.com/database/122/NEWFT/new-features.htm#GUID-BEEEA34D-3D81-4360-887C-A92BC711816D
版本
特性
在线
关键
时间
面的
测试
阻塞
普通
不适
业务
两个
关键字
子句
意味
过程
参考
查询
观察
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ZUOMING软件开发商
浙江服务器维修哪家便宜
办公软件开发小蘑菇
数据库系统的连接符号
俄罗斯网络安全框架
威斯特摩网络技术有限公司
广东佛山软件开发学校
上海苹果软件开发需要多少钱
网络安全作文关于游戏
宣智健服务器怎么用
怎么简单介绍软件开发
新华互联网科技学院怎么样
软件开发的两大思想
生活家互联网科技
网络安全护卫队
基金 网络安全法
服务器显示错误代码55
网络技术4个
网络安全为人民的手抄报插画
mysql 数据库目录
软件开发如何对风险管控
xp的代理服务器
网络安全界人士如何处理
ff14转服务器打折吗
软件开发12岁礼物
.正在载入数据库
linux服务器书籍
无锡企业软件开发商家
数据库如何开启归档模式
电影的服务器下载地址