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¹¤ ......
OracleÖÐʹÓÃWMSYS.WM_CONCATº¯Êý½øÐжàÐÐתÁÐ
ÔÊý¾Ý£º
rank name
AA NAME1
AA NAME2
AA NAME3
BB NAME4
BB NAME5
SQL>select trim(t.rank) as rank,
&nbs ......
¡¾ÑµÁ·6.1¡¿¡¡Ê¹ÓÃÒþʽÓαêµÄÊôÐÔ£¬Åж϶ԹÍÔ±¹¤×ʵÄÐÞ¸ÄÊÇ·ñ³É¹¦¡£
²½Öè1£ºÊäÈëºÍÔËÐÐÒÔϳÌÐò£º
BEGIN
UPDATE emp SET sal=sal+100 WHERE empno=1234;
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('³É¹¦Ð޸ĹÍÔ±¹¤×Ê£¡');
......
package DBbean;
import java.sql.*;
public class ConnBean
{
private Connection con;
//³õʼ»¯Á¬½Ó¡£
public ConnBean()
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
......
ÎÄÕÂÒ»£ºSCNÊÇʲô£¿The System Change Number
system change number (SCN)ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ±ê¼Ç£¬OracleʹÓÃËüÀ´±ê¼ÇÊý¾Ý¿âÔÚ¹ýȥʱ¼äÄÚµÄ״̬ºÍ¹ì¼£¡£
OracleʹÓÃSCNÀ´±£´æËùÓб仯µÄ¹ì¼£¡£SCNÊÇÒ»¸öÂ߼ʱÖÓÀ´¼Ç¼Êý¾Ý¿âʼþ¡£Ëü·Ç³£µÄÖØÒª£¬²¢²»ÊÇÖ»ÊÇΪÁ˻ָ´¡£
SCNÓеãÀàËÆÓÚsequence£¬OracleÔÚSGAÖÐÔ ......