请问两个关于锁的问题1
Oracle never escalates locks, but it does practice lock conversion or lock promotion—terms that are often confused with lock escalation.■Note The terms “lock conversion” and “lock promotion” are synonymous. Oracle typically refers to the process as “lock conversion.”书中只是提到了 “lock conversion” and “lock promotion”,可是在后面并没有提及它们
请问二者分别代表什么呢  
和lock escalation又有什么区别呢2Whereas we get  only one TX lock per transaction, we canget as many TM locks as the objects we modifyEach and every row you modify or SELECT FOR UPDATE in a transaction will “point” to an associated TX lock for that transaction.上面两句话好像有点矛盾  怎么第一句说只得到一个TX LOCK, 而下面那句说对于每行都有TX lock
谢谢大家。

解决方案 »

  1.   

    呵呵 那我翻译一下好了
    1
    ORACLE从来不会“扩大锁”的范围,但是他会尝试着去“转换锁”或者“提升锁”,这两个词很容易和扩大锁搞混淆。
    注意:“转换锁”或者“提升锁”是同义词,ORACLE一般把这个过程成为“转换锁”2
    因此我们每个事务职能获得一个TX锁,而可以获得多个TM锁当我们修改多个对象的时候。你在事务中修改的每一行都会指向一个该事务中的TX锁。我感觉翻译成中文更难理解了。。
      

  2.   

    锁定扩大,应该是指,ORACLE不会把行级锁,升级为表级锁
      

  3.   

    “lock conversion”  “lock promotion” “lock escalation”
    呵呵 锁定扩大  可是这有三个名词的呀
      

  4.   

    1。Oracle不会进行锁升级。就是不会把行级锁,转换成表级锁。SQL SERVER有这个功能。
    但是Oracle不会升级锁,或提升锁。
    但是Oracle有锁转换。
    2。这个问题应该是给你说明DML锁的时候TX锁(事务锁)的说明把。
    这个跟Oracle锁方法有关系的。Oracle每一个数据都有一个属性,Oracle加锁就是改变这个属性的过程。比如一个事物SHIWU1有TX锁,假设它的TX锁的标记[SHIWU1-TX],这是一个唯一的标示符号,当锁住的时候就用这个标记[SHIWU1-TX]更新这个属性,告诉别的事物,这行数据已经被SHIWU1给锁定了。
    这个就说明一个事物只拥有一个事物锁,但是它所指向(锁定的)的数据都拥有[SHIWU1-TX] 这个锁标示符。很绕口。
      

  5.   

    但是TM锁就不一样了。在你用TX锁锁定的数据中多少个数据被你改变了就拥有多少个TM锁。
    TM锁的作用是这个数据提交以前,不能进行DDL操作,改变表的结构。楼主问得时候都写成TX锁了。。上面我说的第2个回答或者不是楼主要得。
      

  6.   

    谢谢HAILANG1118的回答  我明白了