Oracle ¸ôÀë¼¶±ð
¸ôÀë¼¶±ð£¨isoation level£©
¸ôÀë¼¶±ð¶¨ÒåÁËÊÂÎñÓëÊÂÎñÖ®¼äµÄ¸ôÀë³Ì¶È¡£
¸ôÀë¼¶±ðÓë²¢·¢ÐÔÊÇ»¥ÎªÃ¬¶ÜµÄ£º¸ôÀë³Ì¶ÈÔ½¸ß£¬Êý¾Ý¿âµÄ²¢·¢ÐÔÔ½²î£»¸ôÀë³Ì¶ÈÔ½µÍ£¬Êý¾Ý¿âµÄ²¢·¢ÐÔÔ½ºÃ¡£
ANSI/ISO SQ92±ê×¼¶¨ÒåÁËһЩÊý¾Ý¿â²Ù×÷µÄ¸ôÀë¼¶±ð£º
δÌá½»¶Á£¨read uncommitted£©
Ìá½»¶Á£¨read committed£©
ÖØ¸´¶Á£¨repeatabe read£©
ÐòÁл¯£¨seriaizable£©
ͨ¹ýһЩÏÖÏ󣬿ÉÒÔ·´Ó³³ö¸ôÀë¼¶±ðµÄЧ¹û¡£ÕâЩÏÖÏóÓУº
¸üжªÊ§£¨lost update£©£ºµ±ÏµÍ³ÔÊÐíÁ½¸öÊÂÎñͬʱ¸üÐÂͬһÊý¾ÝÊÇ£¬·¢Éú¸üжªÊ§¡£
Ôà¶Á£¨dirty read£©£ºµ±Ò»¸öÊÂÎñ¶ÁÈ¡ÁíÒ»¸öÊÂÎñÉÐδÌá½»µÄÐÞ¸Äʱ£¬²úÉúÔà¶Á¡£
·ÇÖØ¸´¶Á£¨nonrepeatabe read£©£ºÍ¬Ò»²éѯÔÚͬһÊÂÎñÖжà´Î½øÐУ¬ÓÉÓÚÆäËûÌá½»ÊÂÎñËù×öµÄÐ޸Ļòɾ³ý£¬Ã¿´Î·µ»Ø²»Í¬µÄ½á¹û¼¯£¬´Ëʱ·¢Éú·ÇÖØ¸´¶Á¡£(A transaction rereads data it has previousy read and finds that another committed transaction has modified or deeted the data. )
»ÃÏñ£¨phantom read£©£ºÍ¬Ò»²éѯÔÚͬһÊÂÎñÖжà´Î½øÐУ¬ÓÉÓÚÆäËûÌá½»ÊÂÎñËù×öµÄ²åÈë²Ù×÷£¬Ã¿´Î·µ»Ø²»Í¬µÄ½á¹û¼¯£¬´Ëʱ·¢Éú»ÃÏñ¶Á¡£(A transaction reexecutes a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additiona rows that satisfy the condition. )
ÏÂÃæÊǸôÀë¼¶±ð¼°Æä¶ÔÓ¦µÄ¿ÉÄܳöÏÖ»ò²»¿ÉÄܳöÏÖµÄÏÖÏó
Dirty Read
NonRepeatabe Read
Phantom Read
Read uncommitted
Possible
Possible
Possible
Read committed
not possible
Possible
Possible
Repeatabe read
not possible
not possible
Possible
Seriaizabe
not possible
not possible
not possible
ORACEµÄ¸ôÀë¼¶±ð
ORACEÌṩÁËSQ92±ê×¼ÖеÄread committedºÍseriaizabe£¬Í¬Ê±ÌṩÁË·ÇSQ92±ê×¼µÄread-ony¡£
read committed£º
ÕâÊÇORACEȱʡµÄÊÂÎñ¸ôÀë¼¶±ð¡£
ÊÂÎñÖеÄÿһÌõÓï¾ä¶¼×ñ´ÓÓï¾ä¼¶µÄ¶ÁÒ»ÖÂÐÔ¡£
±£Ö¤²»»áÔà¶Á£»µ«¿ÉÄܳöÏÖ·ÇÖØ¸´¶ÁºÍ»ÃÏñ¡£
seriaizabe£º£¨´®ÐÐÖ´ÐÐÊÂÎñ£¬²¢·¢ÐÔ×îС£©
¼òµ¥µØËµ£¬seriaizabe¾ÍÊÇʹÊÂÎñ¿´ÆðÀ´ÏóÊÇÒ»¸ö½Ó×ÅÒ»¸öµØË³ÐòµØÖ´ÐС£
½ö½öÄÜ¿´¼ûÔÚ±¾ÊÂÎñ¿ªÊ¼Ç°ÓÉÆäËüÊÂÎñÌá½»µÄ¸ü¸ÄºÍÔÚ±¾ÊÂÎñÖÐËù×öµÄ¸ü¸Ä¡£
±£Ö¤²»»á³öÏÖ·ÇÖØ¸´¶ÁºÍ»ÃÏñ¡£
Seriaizabe
Ïà¹ØÎĵµ£º
DML:Data Manipulation Language Êý¾Ý²Ù×÷ÓïÑÔ
°üÀ¨£ºCRUD
1. insertÓï¾ä
(1) ´ÓÆäËü±íÖи´ÖÆÊý¾Ý,ʵÏÖ·½·¨:ÔÚinsert Óï¾äÖмÓÈë²éѯÓï¾ä
insert into sales_reps(id,name,salary,commission_pct) select employee_id,last_name,salary,commission_pct
from employees where job_id like '%rep';
(2) up ......
ÒÔÉÏÎª×ªÔØ,¶àÊý²¢Î´ÑéÖ¤.
ÆäÖÐ,select trunc(sysdate,'dd') from dual,µÃµ½µÄÊÇ: 2009-3-23 ÉÏÎç12:00:00 ,ÓëÏÂÎIJ¢²»Ò»Ñù!
oracle trunc()º¯ÊýµÄÓ÷¨
1.TRUNC(for dates)
TRUNCº¯ÊýΪָ¶¨ÔªËضø½ØÈ¥µÄÈÕÆÚÖµ¡£
Æä¾ßÌåµÄÓï·¨¸ñʽÈçÏ£º
TRUNC£¨date[,fmt]£©
ÆäÖУº
date Ò»¸öÈÕÆÚÖµ
fmt ÈÕÆÚ¸ñʽ£¬¸ÃÈÕÆÚ½« ......
¿ª·¢×éÔÚÊý¾ÝÇ¨ÒÆÊ±£¬±¨¸æ·¢ÏÖһЩÊýֵΪ'0000/00/00'µÄdateÊý¾Ý£¬µ¼ÖÂÊý¾ÝÇ¨ÒÆÊ§°Ü¡£
Õâ¸öÎÊÌâÓÐµãÆæ¹Ö£¬ÒòΪÔÚOracleÖУ¬dateÀàÐ͵ÄÊý¾ÝµÄȡֵ·¶Î§ÊÇ´Ó-4712/12/31µ½9999/12/31Ö®¼ä£¬²¢ÇÒÄê·Ý²»ÄÜΪ0¡£Ò²¾ÍÊÇ˵'0000/00/00'ÊÇÒ»¸ö·Ç·¨Êý¾Ý£¬²»ÎªOracleËù½ÓÊÜ¡£
SQL> select to_date('0000-00-00', 'yyyy-mm- ......
DML(Manipulation):Êý¾Ý²Ù×÷ÓïÑÔ
CRUD
DDL(Definition): Êý¾Ý¶¨ÒåÓïÑÔ,Óë±í£¬Ë÷Òý£¬Í¬Òå´ÊÓйØ
create,alter,drop,rename,truncate(Çå¿Õ)
DCL(Control): Êý¾Ý¿ØÖÆÓïÑÔ£¬ÓëȨÏÞÓйØ
grant,revoke
TCL(Transaction Control): ÊÂÎñ¿ØÖÆÓïÑÔ,ÓëÊÂÎñÓйØ
commit,rollback,savepoint
==========================
´æ´¢ ......
1:pfileºÍspfile
ÔÚ9i֮ǰ£¬²ÎÊýÎļþÖ»ÓÐÒ»ÖÖ£¬ËüÊÇÎı¾¸ñʽµÄ£¬³ÆÎªpfile£¬ÔÚ9i¼°ÒÔºóµÄ°æ±¾ÖУ¬ÐÂÔöÁË·þÎñÆ÷²ÎÊýÎļþ,³ÆÎªspfile,ËüÊǶþ½øÖƸñʽµÄ¡£ÕâÁ½ÖÖ²ÎÊýÎļþ¶¼ÊÇÓÃÀ´´æ´¢²Î ÊýÅäÖÃÒÔ¹©oracle¶ÁÈ¡µÄ£¬µ«Ò²Óв»Í¬µã£¬×¢ÒâÒÔϼ¸µã£º
1)pfileÊÇÎı¾Îļþ£¬spfileÊǶþ½øÖÆÎļþ£»
2)¶ÔÓÚ²ÎÊýµÄÅäÖã¬pfile¿ÉÒÔÖ±½ÓÒÔÎ ......