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

oracle¸ßˮλÏß

ʲôÊÇË®Ïß(High Water Mark)?
----------------------------
ËùÓеÄoracle¶Î(segments£¬ÔÚ´Ë£¬ÎªÁËÀí½â·½±ã£¬½¨Òé°Ñsegment×÷Ϊ±íµÄÒ»¸öͬÒå´Ê) ¶¼ÓÐÒ»¸öÔÚ¶ÎÄÚÈÝÄÉÊý¾ÝµÄÉÏÏÞ£¬ÎÒÃÇ°ÑÕâ¸öÉÏÏÞ³ÆΪ"high water mark"»òHWM¡£Õâ¸öHWMÊÇÒ»¸ö±ê¼Ç£¬ÓÃÀ´ËµÃ÷ÒѾ­ÓжàÉÙûÓÐʹÓõÄÊý¾Ý¿é·ÖÅä¸øÕâ¸ösegment¡£HWMͨ³£Ôö³¤µÄ·ù¶ÈΪһ´Î5¸öÊý¾Ý¿é£¬Ô­ÔòÉÏHWMÖ»»áÔö´ó£¬²»»áËõС£¬¼´Ê¹½«±íÖеÄÊý¾ÝÈ«²¿É¾³ý£¬HWM»¹ÊÇΪԭֵ£¬ÓÉÓÚÕâ¸öÌص㣬ʹHWMºÜÏóÒ»¸öË®¿âµÄÀúÊ·×î¸ßˮ룬ÕâÒ²¾ÍÊÇHWMµÄԭʼº¬Ò壬µ±È»²»ÄÜ˵һ¸öË®¿âûˮÁË£¬¾Í˵¸ÃË®¿âµÄÀúÊ·×î¸ßˮλΪ0¡£µ«ÊÇÈç¹ûÎÒÃÇÔÚ±íÉÏʹÓÃÁËtruncateÃüÁÔò¸Ã±íµÄHWM»á±»ÖØÐÂÖÃΪ0¡£
HWMÊý¾Ý¿âµÄ²Ù×÷ÓÐÈçÏÂÓ°Ï죺
a) È«±íɨÃèͨ³£Òª¶Á³öÖ±µ½HWM±ê¼ÇµÄËùÓеÄÊôÓڸñíÊý¾Ý¿â¿é£¬¼´Ê¹¸Ã±íÖÐûÓÐÈκÎÊý¾Ý¡£
b) ¼´Ê¹HWMÒÔÏÂÓпÕÏеÄÊý¾Ý¿â¿é£¬¼üÈëÔÚ²åÈëÊý¾ÝʱʹÓÃÁËappend¹Ø¼ü×Ö£¬ÔòÔÚ²åÈëʱʹÓÃHWMÒÔÉϵÄÊý¾Ý¿é£¬´ËʱHWM»á×Ô¶¯Ôö´ó¡£
ÈçºÎÖªµÀÒ»¸ö±íµÄHWM£¿
a) Ê×ÏȶԱí½øÐзÖÎö:
ANALYZE TABLE <tablename> ESTIMATE/COMPUTE STATISTICS;
b) SELECT blocks, empty_blocks, num_rows
from user_tables
WHERE table_name = <tablename>;
BLOCKS Áдú±í¸Ã±íÖÐÔø¾­Ê¹ÓùýµÃÊý¾Ý¿â¿éµÄÊýÄ¿£¬¼´Ë®Ïß¡£
EMPTY_BLOCKS ´ú±í·ÖÅä¸ø¸Ã±í£¬µ«ÊÇÔÚË®ÏßÒÔÉϵÄÊý¾Ý¿â¿é£¬¼´´ÓÀ´Ã»ÓÐʹÓõÄÊý¾Ý¿é¡£
ÈÃÎÒÃÇÒÔÒ»¸öÓÐ28672ÐеÄBIG_EMP1±íΪÀý½øÐÐ˵Ã÷£º
1) SQL> SELECT segment_name,segment_type,blocks
from dba_segments
WHERE segment_name='BIG_EMP1';
SEGMENT_NAME SEGMENT_TYPE BLOCKS EXTENTS
----------------------------- ----------------- ---------- -------
BIG_EMP1 TABLE 1024 2
1 row selected.
2) SQL> ANALYZE TABLE big_emp1 ESTIMATE STATISTICS;
Statement processed.
3) SQL> SELECT table_name,num_rows,blocks,empty_blocks
from user_tables
WHERE table_name='BIG_EMP1';
TABLE_NAME NUM_ROWS BLOCKS EMPTY_BLOCKS
------------------------------ ---------- ---------- ------------
BIG_EMP1 28672 700 323
1 row selected.
×¢Ò⣺
BLOCKS + EMPTY_BLOCKS (700+323=1023)±ÈDBA_SEGMENTS.BLOCKSÉÙ¸öÊý¾Ý¿â¿é£¬ÕâÊÇÒòΪÓÐÒ»¸öÊý¾Ý¿â¿é±»±£ÁôÓÃ×÷segment header¡£DBA_SEGMENTS.BLOCKS ±íʾ·ÖÅä¸øÕâ¸ö±íµÄËùÓеÄÊý¾Ý¿â¿éµÄÊýÄ¿¡£U


Ïà¹ØÎĵµ£º

OracleÖеÄto_date£¨£©

OracleÖÐto_date()Óë24СʱÖƱíʾ·¨¼°mm·ÖÖÓµÄÏÔʾ£º
ÔÚʹÓÃOracleµÄto_dateº¯ÊýÀ´×öÈÕÆÚת»»Ê±£¬ºÜ¶àJava³ÌÐòÔ±Ò²Ðí»áºÍÎÒÒ»Ñù£¬Ö±¾õµÄ²ÉÓÓyyyy-MM-dd HH:mm:ss”µÄ¸ñʽ
×÷Ϊ¸ñʽ½øÐÐת»»£¬µ«ÊÇÔÚOracleÖлáÒýÆð´íÎ󣺓ORA 01810 ¸ñʽ´úÂë³öÏÖÁ½´Î”¡£È磺
to_date('2005-01-01 13:14:20 ......

oracle nvl decode

SELECT
DECODE(ÁÐ,0,'Q'1,'P',2,'O')¡¡AS ret
from dual
--·ÖÎö: µ± ÁÐ=0ʱ,½«"Q"¸³Öµ
--µ± ÁÐ =1ʱ,½«"P"¸³Öµ
--µ± ÁÐ=2ʱ,½«"O"¸³Öµ
--NVL()º¯Êý:
--NVL(ARG,VALUE)´ï±êÈç¹ûÇ°ÃæµÄARGֵΪNULLÄÇô·µ»ØµÄֵΪºóÃæµÄVALUE¶þÕß½áºÏʹÓÃ:
DECODE(NVL(±äÁ¿ ''),'','-','OK')
//·ÖÎö:
--Èô ±äÁ¿ ÊÇ·ñΪ¿Õ.ÈôΪ¿Õ¸³¸ø¿ ......

Oracle ÈÕÆÚ²éѯÓï¾äС½á

²éѯÐÇÆÚ¼¸:
select to_char(sysdate,'day') from dual;
²éѯ¼¸ºÅ:
select to_char(sysdate,'dd') from dual;
²éѯСʱÊý:
select to_char(sysdate,'hh24') from dual;
²éѯʱ¼ä:
select to_char(sysdate,'hh24:mi:ss') from dual;
²éѯÈÕÆÚʱ¼ä:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
²é ......

ORACLEµÄ·ÖÇø±í

•±í·ÖÇø¼¼ÊõÊÇÔÚ³¬´óÐÍÊý¾Ý¿â(VLDB)Öн«´ó±í¼°ÆäË÷Òýͨ¹ý·ÖÇø£¨patition£©µÄÐÎʽ·Ö¸îΪÈô¸É½ÏС¡¢¿É¹ÜÀíµÄС¿é£¬²¢ÇÒÿһ·ÖÇø¿É½øÒ»²½»®·ÖΪ¸üСµÄ×Ó·ÖÇø£¨sub partition£©
•Í¨¹ý¶Ô±í½øÐзÖÇø£¬¿ÉÒÔ»ñµÃÒÔϵĺô¦
–¼õÉÙÊý¾ÝË𻵵ĿÉÄÜÐÔ
–¸÷·ÖÇø¿ÉÒÔ¶ÀÁ¢±¸·ÝºÍ»Ö¸´£¬ÔöÇ¿ÁËÊý¾Ý¿âµÄ¿É¹ÜÀíÐÔ ......

Oracle dead lock deep research.

Update SQLS will lead dead lock exception. Because by default, it use optimistic lock but not pessimistic lock.
Below description is exceprted from the attachment(It exceeds my image that this blog can not upload the attachment,hehe)
Optimistic locking offers an elegant solution to the problems o ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ