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
Ïà¹ØÎĵµ£º
ÌìÓв»²â·çÔÆ£¬
IBM µÄÖж˴ÅÅÌÕóÁÐÕâ´ÎÓÖÈÇ»öÁË¡£ÔÚ΢ÂëÉý¼¶µÄʱºò£¬
DS4800 ·¢Éú¹ÊÕÏ¡£µ¼Öµ±Ê±ÔÚÕą̂¿âÉϵļ¸Ì×Éú²ú¿â±¨´íÁË¡£
IBM¹¤³Ìʦ°ÑÕóÁйÊÕϻָ´ºó£¬ÅÄÅÄÆ¨¹É×ßÈË£¬ÕóÁÐÉϵÄÊý¾ÝÓÖµÃÎÒÃÇÀ´Ïë°ì·¨ÇÀ¾ÈÁË¡£¡£¡£¡£
»¹ºÃÓÐoracle supportµÄÖ§³ÖÎÒÃÇ×îÖÕ»¯½âÁËÕâ´ÎΣ»ú¡£ÏÂÎÄÏêϸ½éÉÜÁËÕû¸ö»Ö¸´µÄ¹ý³Ì¡£
oracle¹¤ ......
Êý¾Ý¿âÊý¾Ý
ID
UserName
Date
1
User1
2010/4/27
1
User1
2010/4/11
1
User1
2010/4/1
ÒªÇó£º
»ñÈ¡×îÐÂÈÕÆÚµÄÒ»ÌõÊý¾Ý
SqlÓï¾ä£º
select t.* from tb t where date = (select max(date) from tb where id = t.id) order by t.id ......
OracleÖÐʹÓÃWMSYS.WM_CONCATº¯Êý½øÐжàÐÐתÁÐ
ÔÊý¾Ý£º
rank name
AA NAME1
AA NAME2
AA NAME3
BB NAME4
BB NAME5
SQL>select trim(t.rank) as rank,
&nbs ......
ÎÄÕÂÒ»£ºSCNÊÇʲô£¿The System Change Number
system change number (SCN)ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ±ê¼Ç£¬OracleʹÓÃËüÀ´±ê¼ÇÊý¾Ý¿âÔÚ¹ýȥʱ¼äÄÚµÄ״̬ºÍ¹ì¼£¡£
OracleʹÓÃSCNÀ´±£´æËùÓб仯µÄ¹ì¼£¡£SCNÊÇÒ»¸öÂ߼ʱÖÓÀ´¼Ç¼Êý¾Ý¿âʼþ¡£Ëü·Ç³£µÄÖØÒª£¬²¢²»ÊÇÖ»ÊÇΪÁ˻ָ´¡£
SCNÓеãÀàËÆÓÚsequence£¬OracleÔÚSGAÖÐÔ ......
ÔÚѧϰoracleµÄʱºòÓöµ½ÁËÒ»¸öÎÊÌ⣬µ±ÎҵǼscottÓû§µÄʱºòÔõô¾ÍÊÇÁ´½Ó²»ÉÏ£¬³öÏÖÁËÒÔÏ´íÎóÌáʾ£¬the account is locked,˵Ã÷scottÓû§±»Ëø×¡ÁË£¬ÎҾͽøÐÐÁ˽âËø£¬Óï¾äÈçÏ£ºalter user soctt account unlock;Ö´ÐÐÍêÒÔºó·¢ÏÖÓÖÌáʾÁËÒ»¸ö´íÎóÐÅÏ¢£¬No Connect
ÎÞ·¨Á´½Ó£¬ºóÀ´ÔÚÍøÉϲéÁ˲飬ÖÕÓÚÕÒµ ......