【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 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2128459/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【ORACLE新特性】11G 分割槽新特性Oracle
- oracle 11g 的新特性Oracle
- Oracle 11G ddl_lock_timeoutOracle
- Oracle 11g 新特性Oracle
- 11g data guard 新特性
- 11g新特性--active dataguard
- 11G新特性:FLASHBACK ARCHIVEHive
- 11G新特性,待定的統計資訊
- 11G Flashback Data Archive新特性的研究Hive
- 11g新特性:Pending Statistics
- Oracle 11g 新特性簡介Oracle
- Oracle 11g 新特性之DRCPOracle
- 11g 新特性—— Active Database DuplicationDatabase
- Oracle 11g新特性:Result CacheOracle
- 11g新特性--result caching
- Oracle 11g 新特性(轉載)Oracle
- 11G新特性:FLASHBACK ARCHIVE - 01Hive
- 11G新特性:FLASHBACK ARCHIVE – 02Hive
- Oracle 11g新特性之SecureFilesOracle
- 11g新特性:不可視索引索引
- 11g新特性--pending statistics
- 【Mysql】mysql5.7新特性之-sys schema的作用MySql
- Oracle 11g DDL 的 wait選項(DDL_LOCK_TIMEOUT)OracleAI
- goldengate 11g patch set 1的新特性Go
- Oracle 11g的新特性分割槽:System PartitionOracle
- Oracle 11g DDL_LOCK_TIMEOUT引數說明Oracle
- oracle DG 11g新特性彙總Oracle
- ORACLE 11G新特性之列新增操作Oracle
- 【11g新特性】(I/O calibration)
- Oracle 11g 新特性 -- SecureFiles 說明Oracle
- 11g新特性--invisible indexIndex
- oracle 11g 新特性 表壓縮Oracle
- 【DataGuard】11g 新特性:Active Data Guard
- 11G 新特性: 新加的提示 CHANGE_DUPKEY_ERROR_INDEXErrorIndex
- 新特性:/dev/shm對Oracle 11g的影響devOracle
- 11G result cache新特性的更多深入研究
- Oracle 11g 新特性 -- SQL Plan Management 示例OracleSQL
- 11g叢集新特性-scan機制