dml_locks PRAMETER

简介: (我的学习笔记) 今天遇到了  "CREATE UNIQUE INDEX "PK_EMP" ON "EMP" ("EMPNO" )  PCTFREE 10 INITRANS 2 MAX" "TRANS 255 STORAGE(INITIAL 65536 FR...

(我的学习笔记)

今天遇到了

 "CREATE UNIQUE INDEX "PK_EMP" ON "EMP" ("EMPNO" )  PCTFREE 10 INITRANS 2 MAX"
 "TRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL D"
 "EFAULT) TABLESPACE "USERS" LOGGING"
IMP-00003: 遇到 ORACLE 错误 62
ORA-00062: 无法获得 DML 全表锁定; DML_LOCKS 为 0
IMP-00017: 由于 ORACLE 错误 62, 以下语句失败:
 "ALTER TABLE "EMP" ADD  CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO") USING INDE"
 "X PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREE"
 "LIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING ENABLE "

然后查了一下DML_LOCKS 作用如下:

-----------------------------------------------------------------------------------------------------------------------------------------------------------

转自http://space.itpub.net/12361284/viewspace-601

dml_locks这个参数呢,主要是用来规定TM锁的总数,实际上这个参数可以设置为0,表示我们要取消数据库获得TM表级锁的能力,这时候数据库的数据封锁粒度实际只有一级,就是行级(TX)。这样设置之后,其实数据行的updte修改仍能进行,但是会话只能是获得了TX锁,而不能获得任何的TM锁,由于在更新数据库的时候没有任何TM锁的保护,所以数据库中任何的DDL语句都是不能执行的(ORA-00069: cannot acquire lock -- table locks disabled for my_table)

当然这样做的虽然可以提高数据库的性能,但是也会带来一些小小的麻烦。
为了不在全局使这样的改变生效,我们还可以针对table来让他生效
alter table my_table disable table lock;
alter table my_table enable table lock;

-----------------------------------------------------------------------------------------------------------------------------------------------------------

但是本参数为静态参数,需要重启才能生效。

相关文章
|
7月前
|
SQL Oracle 关系型数据库
DDL、DML和DCL的区别与理解
DDL、DML和DCL的区别与理解
236 1
DDL、DML和DCL的区别与理解
|
数据库管理 Ruby
Transaction recovery: lock conflict caught and ignored
Transaction recovery: lock conflict caught and ignored环境:RAC 4节点、oracle 11.2.0.4、redhat 5.9 64bit 问题描述: 1.
1850 0
|
SQL 数据库
DML
DML
38 0
|
关系型数据库 MySQL 索引
MySQL InnoDB中的锁-插入意向锁(Insert Intention Lock)
MySQL InnoDB 插入意向锁 Insert Intention Lock
3572 0
MySQL InnoDB中的锁-插入意向锁(Insert Intention Lock)
|
存储 SQL 关系型数据库
SQL 事务与锁 详解
SQL 事务与锁 详解
SQL 事务与锁 详解
|
SQL 关系型数据库 MySQL
mysql中lock tables与unlock tables(锁表/解锁)使用总结
mysql中lock tables与unlock tables(锁表/解锁)使用总结
396 0
|
SQL 关系型数据库 MySQL
是谁,把InnoDB表上的DML搞慢的?
是谁,把InnoDB表上的DML搞慢的?
128 0
是谁,把InnoDB表上的DML搞慢的?
|
SQL 关系型数据库 MySQL
DDL--DML
DDL--DML
147 0
|
SQL 存储 关系型数据库
DDL_Synchronization
在共享存储一写多读的架构下,数据文件实际上只有一份。得益于多版本机制,不同节点的读写实际上并不会冲突。但是有一些数据操作不具有多版本机制,其中比较有代表性的就是文件操作。
DDL_Synchronization
|
Web App开发 关系型数据库 PostgreSQL