How To Automate Cleanup Of Dead Connections And INACTIVE Sessions [ID 206007.1]

Posted by dbtan on 九月 15th, 2010

How To Automate Cleanup Of Dead Connections And INACTIVE Sessions [ID 206007.1]


Modified 25-JUN-2009     Type HOWTO     Status PUBLISHED

PURPOSE
-------This note explains the difference between a dead connection and an
INACTIVE session in v$session.  It also discusses the mechanisms
provided to automate the cleanup of each.SCOPE & APPLICATION
-------------------This note is intended for any DBA who wants to automate the cleanup of
dead connections and/or INACTI
... ...
<阅读全文>

认领博客 dbtan 谈DB

Posted by dbtan on 六月 20th, 2010

认领博客 dbtan 谈DB

QQREADERF129F7D46654828B<阅读全文>

Oracle 10g/11g Latch机制的变化

Posted by dbtan on 五月 13th, 2010

Oracle 10g/11g Latch机制的变化:
前面曾经提到,Oracle的Latch机制采用spin来进行持有CPU的不断尝试,虽然通常Latch的获取会非常快(一般在微秒级),但是很多时候Latch竞争还是会引发极为严重的CPU争用。所以从Oracle 10g开始,Oracle尝试引入一种新的机制来代替传统的Latch机制,这就是Mutex机制,也就是互斥机制。和Latch相比,一个Mutex Get大约仅需要30~35个指令,而Latch Get则需要大约150~200个指令,同时在大小上,每个Mutex仅占大约16Bytes空间,而Latch在10gR2中要占用大约112Bytes空间。

在Oracle 10.2..0.1中一个新的参数_kks_use_mutex_pin被引入,不过缺省值为False:

sys@TQGZS> select x.k
... ...
<阅读全文>

Latch Free(闩锁释放)

Posted by dbtan on 五月 13th, 2010

Latch Free(闩锁释放):
Latch Free通常被称为闩锁释放,这个名称常常引起误解,实际上我们应该在前面加上一个“等待”(wait),当数据库出现这个等待时,说明有进程正在等待某个Latch被释放,也就是waiting latch free。

Latch是一种低级排队(串行)机制,用于保护SGA中共享内存结构。Latch就像是一种快速被获取和释放的内存锁,用于防止共享内存结构被多个用户同时访问。其实不必把Latch想得过于复杂,Latch通常就是操作系统利用内存中的某个区域,通过设置变量为0或非0,来表示Latch是否已经被取得,大多数操作系统,是使用TEST AND SET的方式来完成Latch检查或持有的。

为了快速地获得一个直观认识,以下
... ...
<阅读全文>

Enqueue (队列等待)

Posted by dbtan on 五月 13th, 2010

Enqueue (队列等待):
Enqueue是一种保护共享资源的锁定机制。该锁定机制保护共享资源,以避免因并发操作而损坏数据,比如通过锁定保护一行记录,避免多个用户同时更新。Enqueue采用排队机制,即FIFO(先进先出)来控制资源的使用。

在Oracle 10g之前,Enqueue事件是一组锁定事件的集合,如果数据库中这个等待事件比较显著,我们还需要进一步来追踪是哪个类别的锁定引发了数据库等待。

从Oracle 10g开始,Oracle对于队列等待进行了细分,v$event_name视图中可以查询这些细分后的等待事件,简要摘录几个示例如下:

sys@CCDB> select name,wait_class
  2  from v$event_name  &nb
... ...
<阅读全文>


Copyright © 2010 http://www.dbtan.com. All rights reserved.