Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

oracle mutex

An introduction to Mutexes in 10gR2
By Connie Green, Kumar Rajamani
from meetings with: Kumar Rajamani, Russell Green, Saureen Shah, Cecilia Gervasio and Connie Green
Introduction
This paper is intended as an introduction to mutexes.  It describes new concepts associated with mutexes, when mutexes are used, and related wait events and views.
Overview
A mutex, similarly to a latch, is a low-level serialization mechanism used to control access to a shared data structure in the SGA.  Serialization is required to avoid an object being:
? deallocated while someone is accessing it
? read while someone is modifying it
? modified while someone is modifying it
? modified while someone is reading it
Mutexes can be defined and used in many different ways.  For example:
? Each structure being protected by a mutex can have its own mutex (e.g. a parent cursor has its own mutex, and each child cursor has its own mutex)
? Each structure can be protected by more than one mutex, with each mutex protecting a different part of the structure
? A mutex can protect more than one structure
The mutex can either be stored within the structure it protects, or elsewhere.  Mutexes are usually dynamically created at the same time as the structure they protect.  If a mutex is embedded within the structure it protects, then it will be implicitly destroyed when the owning structure is freed.
Benefits of mutexes
Although mutexes and latches are both serialization mechanisms, mutexes have certain features latches do not.
Smaller and faster
Mutexes were introduced as an alternative to latches, as they are much faster to get, and smaller.  A mutex get is in the region of 30-35 instructions, compared to 150-200 instructions for a latch.  A mutex is around 16 bytes in size, compared to 112 bytes for a latch in 10.2 (in prior releases it was 200 bytes).  Some of the reduction in latch size was achieved by obsolet


Ïà¹ØÎĵµ£º

oracleÊý¾ÝÎļþ»Ö¸´

1.    ×¼±¸¹¤×÷
°Ñ¾ÉµÄORACLEËùÓÐÎļþ¶¼COPY±¸·ÝÏÂÀ´,ɾ³ý¾ÉĿ¼,ÔÙÖØÐ°²×°ORACLE,Ŀ¼ºÍ¾ÉĿ¼һÑù(Èç¹û²»Ò»Ñù,ÒªÐ޸ĵĵط½±È½Ï¶à).Ö»°²×°ORACLE,²»´´½¨Êý¾Ý¿â¡£Òª»Ö¸´µÄʵÀýΪORCL ¡£
2.ÓÃÃüÁʽ£¬Í¨¹ýÒª¾ÉµÄORAÎļþ´´½¨ÐµÄʵÀýORCL
a)     oradim -new -sid ORCL£¨´´½¨ÊµÀý£ ......

ÔÚORACLEµÃµ½Ä³¸ö±íµÄÖ÷¼ü×Ö¶ÎÃû

select column_name from all_cons_columns cc
where owner='SSH'  --SSHΪÓû§Ãû³Æ£¬Òª×¢Òâ´óСд
and table_name='SYS_DEPT' --SYS_DEPTΪ±íÃû£¬×¢Òâ´óСд
and exists (select 'x' from all_constraints c
where c.owner = cc.owner
and c.constraint_name = cc.constraint_name
and c.constraint_type ='P' ......

oracle instr


¶ÔÓÚinstrº¯Êý£¬ÎÒÃǾ­³£ÕâÑùʹÓ㺴ÓÒ»¸ö×Ö·û´®ÖвéÕÒÖ¸¶¨×Ó´®µÄλÖá£Àý
È磺
SQL> select
instr('yuechaotianyuechao','ao') position from dual;
 
  POSITION
----------
        
6
 
´Ó×Ö·û´®'yuechaotianyuechao'µÄµÚÒ»¸öλÖÿªÊ¼£¬Ïòºó² ......

OracleÖаÑyyyy mm ddת³ÉyyyyÄêmmÔÂddÈÕ


SQL> select   to_char(sysdate,'yyyy')||'Äê'||to_char(sysdate,'mm')||'ÔÂ'||to_char(sysdate,'dd')||'ÈÕ'  from   dual;
TO_CHAR(SYSDATE,'YYYY')||'Äê'|
»òÕßʹÓÃË«ÒýºÅ
select to_char(add_months(trunc(sysdate),-1),'yyyy"Äê"mm"ÔÂ"') from dual    È¡ÉϸöÔ·Ý
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ