【11g新特性】DDL_LOCK_TIMEOUT的作用

简介:
11g以前,DDL 语句是不会等待DML语句的,当DDL语句访问的对象正在执行的DML语句,会立即报错 ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效。 而在11g以后,DDL_LOCK_TIMEOUT参数可以修改这一状态,当DDL_LOCK_TIMEOUT=0时,DDL 不等待DML, 当DDL_LOCK_TIMEOUT 为N(秒)时,DDL等待DML N 秒!
版本:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
  
session 1
建立测试表
yang@rac1>create table yangtab as select * from all_objects where rownum <200;
表已创建。
对表执行DML 
yang@rac1>update yangtab set object_name='yangql';
已更新199行。
yang@rac1>show parameter ddl_lock
NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------
ddl_lock_timeout                     integer     0
yang@rac1>update yangtab set wner='yangql';
已更新199行。
session 2 对表执行ddl操作
yang@rac1>alter table yangtab drop column owner;
alter table yangtab drop column owner
            *
第 1 行出现错误:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
已用时间:  00: 00: 00.01 --注意时间
设置 ddl_lock_timeout =10 秒,实现DDL语句等待DML语句
yang@rac1>alter session set ddl_lock_timeout=10;
会话已更改。
已用时间:  00: 00: 00.10
yang@rac1>alter table yangtab drop column owner;
alter table yangtab drop column owner
            *
第 1 行出现错误:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
已用时间:  00: 00: 10.03 --等待时间接近10秒
yang@rac1>alter session set ddl_lock_timeout=8;改为8秒
会话已更改。
已用时间:  00: 00: 00.02
yang@rac1>alter table yangtab drop column owner;
alter table yangtab drop column owner
            *
第 1 行出现错误:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
已用时间:  00: 00: 08.01 --等待8秒
yang@rac1>alter session set ddl_lock_timeout=0;
会话已更改。
已用时间:  00: 00: 00.00
yang@rac1>alter table yangtab drop column owner;
alter table yangtab drop column owner
            *
第 1 行出现错误:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
已用时间:  00: 00: 00.00

综上,设置ddl_lock_timeout为N(秒)后,DDL执行后将等待N秒钟后才抛出报错信息。 在ddl_lock_timeout为默认值 0 时,DDL语句提交之后马上报错。
官方解释如下:

DDL_LOCK_TIMEOUT

Property Description
Parameter type Integer
Default value 0
Modifiable ALTER SESSION
Range of values 0 to 1,000,000 (in seconds)
Basic No
相关文章
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
9954 0
|
10月前
|
人工智能 自然语言处理 并行计算
Kokoro-TTS:超轻量级文本转语音模型,支持生成多种语言和多种语音风格
Kokoro-TTS 是一款轻量级文本转语音模型,支持多语言和多语音风格生成,具备实时处理能力和低资源占用,适用于多种应用场景。
1594 5
Kokoro-TTS:超轻量级文本转语音模型,支持生成多种语言和多种语音风格
|
Windows Linux 网络安全
windows 上rsync客户端使用方法
1.1 获取 windows上实现rsync的软件(cwRsync) cwRsync是Windows 客户端GUI的一个包含Rsync的包装。您可以使用cwRsync快速远程文件备份和同步。 1.
9907 0
windows 上rsync客户端使用方法
|
JavaScript 开发工具
解决vue项目中的“Invalid Host header”
解决vue项目中的“Invalid Host header” https://juejin.cn/post/7101138173828268046
847 0
解决vue项目中的“Invalid Host header”
|
JavaScript
VUE element-ui之页面全屏时el-select下拉菜单不显示问题解决
VUE element-ui之页面全屏时el-select下拉菜单不显示问题解决
3391 0
Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE解决方法
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/51885960 问题复现: ...
1182 0
|
1天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。

热门文章

最新文章