ITPub博客

首页 > 数据库 > Oracle > DDL_LOCK_TIMEOUT的作用

DDL_LOCK_TIMEOUT的作用

原创 Oracle 作者:bisal 时间:2015-03-24 23:05:23 1 删除 编辑

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7192724/viewspace-1472504/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE,10g/11g OCP,11g OCM,国内首批Oracle YEP成员(Oracle Young Expert Program,Oracle用户组年轻专家项目),EXIN DevOps Master,Oracle爱好者,微信公众号:bisal的个人杂货铺

注册时间:2022-06-21

  • 博文量
    539
  • 访问量
    2801252