设为首页 加入收藏

TOP

DDL_LOCK_TIMEOUT的作用
2015-07-24 11:10:41 来源: 作者: 【 】 浏览:1
Tags:DDL_LOCK_TIMEOUT 作用

11g的DDL_LOCK_TIMEOUT参数的作用,从字面上看,就是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

?

DDL_LOCK_TIMEOUT specifies a time limit for how long DDL statements will wait in a DML lock queue. The default value of zero indicates a status of NOWAIT. The maximum value of 1,000,000 seconds will result in the DDL statement waiting forever to acquire a DML lock.
If a lock is not acquired before the timeout period expires, then an error is returned.

从解释看,很好理解,该参数表示了执行DDL语句时需要等待DML锁的超时时间,默认0表示当无法立即获得DML锁时,会立即抛出NOWAIT,并且支持session级修改。

实验:

SQL> show parameter ddl_lock_timeout

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
ddl_lock_timeout integer 0

SQL> desc t;

Name Null? Type
----------------------------------------- -------- ----------------------------
TID NOT NULL NUMBER(38)
CLS_NAME NOT NULL VARCHAR2(30)

session1:

SQL> update t set cls_name='a' where tid=1;

0 rows updated.

session2:

SQL> drop table t;

drop table t
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

Elapsed: 00:00:00.00

session2:

SQL> alter session set ddl_lock_timeout = 10;

Session altered.

SQL> drop table t;
drop table t
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

Elapsed: 00:00:10.01

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HBase写入操作卡住长时间不返回的.. 下一篇Mongo DBUTC时间问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)