OracleÊý¾Ý¿âËø
¡¾×ª¡¿http://topic.csdn.net/t/20031006/10/2327335.html
ÎÄÕÂÀ´×Ô www.ncn.cn (¾ÛÏÍׯ)
=======================================================
ORACLEÀïËøÓÐÒÔϼ¸ÖÖģʽ:
0£ºnone
1£ºnull ¿Õ
2£ºRow-S Ðй²Ïí(RS)£º¹²Ïí±íËø£¬sub share
3£ºRow-X ÐжÀÕ¼(RX)£ºÓÃÓÚÐеÄÐ޸ģ¬sub exclusive
4£ºShare ¹²ÏíËø(S)£º×èÖ¹ÆäËûDML²Ù×÷£¬share
5£ºS/Row-X ¹²ÏíÐжÀÕ¼(SRX)£º×èÖ¹ÆäËûÊÂÎñ²Ù×÷£¬share/sub exclusive
6£ºexclusive ¶ÀÕ¼(X)£º¶ÀÁ¢·ÃÎÊʹÓã¬exclusive
Êý×ÖÔ½´óËø¼¶±ðÔ½¸ß, Ó°ÏìµÄ²Ù×÷Ô½¶à¡£
1¼¶ËøÓУºSelect£¬ÓÐʱ»áÔÚv$locked_object³öÏÖ¡£
2¼¶ËøÓУºSelect for update,Lock For Update,Lock Row Share
select for updateµ±¶Ô»°Ê¹ÓÃfor update×Ó´®´ò¿ªÒ»¸öÓαêʱ£¬ËùÓзµ»Ø¼¯ÖеÄÊý¾ÝÐж¼½«´¦ÓÚÐм¶(Row-X)¶ÀÕ¼Ê½Ëø¶¨£¬ÆäËû¶ÔÏóÖ»ÄܲéѯÕâЩÊý¾ÝÐУ¬²»ÄܽøÐÐupdate¡¢delete»òselect for update²Ù×÷¡£
3¼¶ËøÓУºInsert, Update, Delete, Lock Row Exclusive
ûÓÐcommit֮ǰ²åÈëͬÑùµÄÒ»Ìõ¼Ç¼»áûÓз´Ó¦, ÒòΪºóÒ»¸ö3µÄËø»áÒ»Ö±µÈ´ýÉÏÒ»¸ö3µÄËø, ÎÒÃDZØÐëÊͷŵôÉÏÒ»¸ö²ÅÄܼÌÐø¹¤×÷¡£
4¼¶ËøÓУºCreate Index, Lock Share
locked_modeΪ2,3,4²»Ó°ÏìDML(insert,delete,update,select)²Ù×÷, µ«DDL(alter,dropµÈ)²Ù×÷»áÌáʾora-00054´íÎó¡£
00054, 00000, "resource busy and acquire with NOWAIT specified"
// *Cause: Resource interested is busy.
// *Action: Retry if necessary.
5¼¶ËøÓУºLock &
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
ǰ¶Îʱ¼ä×öÁËÒ»¸öÐéÄâ×éÖ¯µÄ´´½¨¡£Õâ¸öÐéÄâ×éÖ¯µÄ´´½¨ÊÇ´ÓÏÖÓеÄ×éÖ¯ÖжÁÈ¡Êý¾ÝÈ»ºó½øÐзÖÎö±£´æµ½ÐéÄâ×éÖ¯±íÖС£±£´æÖ®ºóдÈÕÖ¾·½±ãͬ²½µ½ÆäËüϵͳÖС£¹«Ë¾Ê¹ÓõÄÖ÷Òª¼¼ÊõÊÇSSH¡£ÓÉÓÚÊÇÐÂÈËûÓÐʲô¾Ñ飬¼Ó֮ʱ¼ä±È½Ï½ôÆÈ£¬×îºóʹÓÃÒ»°ãµÄÂ߼˼Ïëͨ¹ýµÝ¹éÔÚhibernateÏÂ˳Àû´´½¨ÁË¡£¿ÉÊÇ´ÓÏÖÓеÄ×éÖ¯Ö ......
Ò».B-TreeË÷Òý(b-tree index)
1. Ñ¡ÏîÔñË÷Òý×ֶεÄÔÔò:
ÔÚWHERE×Ó¾äÖÐ×îÆµ·±Ê¹ÓõÄ×Ö¶Î
Áª½ÓÓï¾äÖеÄÁª½Ó×Ö¶Î
Ñ¡Ôñ¸ßÑ¡ÔñÐÔµÄ×Ö¶Î(Èç¹ûºÜÉÙµÄ×Ö¶ÎÓµÓÐÏàֵͬ,¼´Óкܶà¶ÀÌØÖµ,ÔòÑ¡ÔñÐԺܺÃ)
ORACLEÔÚUNIQUEºÍÖ÷¼ü×Ö¶ÎÉÏ×Ô¶¯½¨Á¢Ë÷Òý
ÔÚÑ¡ÔñÐԺܲîµÄ×Ö¶ÎÉϽ¨Ë÷ÒýÖ»ÓÐÔÚÕâ¸ö×Ö¶ÎµÄ ......
1¡¢´´½¨±ít1 £ºcreate table t1 (id number,name nvarchar(8))£»
2¡¢´´½¨ÐòÁÐ £ºCREATE SEQUENCE t1_id INCREMENT BY 1 START WITH 1 MAXVALUE
1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER
3. ´´½¨´¥·¢Æ÷ £º
CREATE TRIGGER tig_insert_t1
BEFORE INSERT ON "YINZQ"."T1"
begin
if (:new.id is null) then
......
OracleµÄÔ¼Êø
* Èç¹ûij¸öÔ¼ÊøÖ»×÷ÓÃÓÚµ¥¶ÀµÄ×ֶΣ¬¼´¿ÉÒÔÔÚ×ֶμ¶¶¨ÒåÔ¼Êø£¬Ò²¿ÉÒÔÔÚ±í¼¶¶¨ÒåÔ¼Êø£¬µ«Èç¹ûij¸öÔ¼Êø×÷ÓÃÓÚ¶à¸ö×ֶΣ¬
±ØÐëÔÚ±í¼¶¶¨ÒåÔ¼Êø
* ÔÚ¶¨ÒåÔ¼ÊøÊ±¿ÉÒÔͨ¹ýCONSTRAINT¹Ø¼ü×ÖÎªÔ¼ÊøÃüÃû£¬Èç¹ûûÓÐÖ¸¶¨£¬ORACLE½«×Ô¶¯ÎªÔ¼Êø½¨Á¢Ä¬ÈϵÄÃû³Æ
¶¨Òåprimary keyÔ¼Êø(µ¥¸ö×ֶΣ©
create table ......