zhuan :Oracle Partition Table
ÔÚÊý¾Ý²Ö¿âÖо³£»áÓõ½ Partition Tables & Index£¬ÕâЩÌì¿Í»§¶¼·Å¼Ù£¬Óеã¿ÕÏÐʱ¼ä£¬°Ñ¹ØÓÚ Partition µÄ¸ÅÄîÖØÐ¹ýÒ»±é£¬Ë³±ã¼òµ¥ÕûÀíÈçÏ£º
What Partition:
Partition ¾ÍÊÇ·ÖÇø£¬½«Ò»Õűí»òÕßË÷Òý¸ù¾Ý²»Í¬µÄÌõ¼þ»®·Ö³ÉÒ»¸ö¸ö·ÖÇø£¬Âß¼ÉÏÀ´¿´¸úÆÕͨ±íÎÞÒì¡£
When Partition:
Ò»°ãÀ´Ëµ£¬µ±ÄãijÕűíÖеÄÊý¾ÝÁ¿·Ç³£ÅӴ󣬴ﵽ°ÙÍò¼¶±ð£¬»òÊý¾Ý´óС´ïµ½ÒÔGΪµ¥Î»¼ÆÊ±ºò£¬½¨ÒéʹÓà Partition¡£
Why Partition:
¶ÔÓÚÓ¦ÓÃÀ´Ëµ£¬ÓÉÓÚÊý¾ÝÁ¿¾Þ´ó£¬µ±½øÐо޶îÊý¾ÝÖ®¼äµÄ join ²Ù×÷ʱ£¬Ê¹Óà Partition »á¼«´óµÄÌá¸ßÐÔÄÜ£»¶ÔÓÚ¹ÜÀíÀ´Ëµ£¬Partition ´ó´óµÄ¼ÓÇ¿Á˹ÜÀíµÄ¼ò±ãÐÔ¡£
Which Partition:
oracle 10g Ö÷ÒªÌṩÁË4ÖÖ·ÖÇøµÄ·½Ê½
1, Range Partitioning
2, Hash Partitioning
3, List Partitioning
4, Composite Partitioning
Range Partitioning
ÕâÖÖ·ÖÇøÊÇ×îÆÕ±éµÄ·ÖÇø·½·¨£¬±íÖеÄÊý¾ÝÈôÄܹ»°´ÕÕÂß¼·¶Î§À´»®·Ö£¨±ÈÈçÔ·ݣ©£¬¾Í¿ÉÒÔ²ÉÓô˷½Ê½¡£
¸´ÖÆÄÚÈݵ½¼ôÌù°å ³ÌÐò´úÂë
Create TABLE sonic_range
(sonic_id NUMBER(5),
sonic_name VARCHAR2(30),
sonic_date DATE)
PARTITION BY RANGE(sonic_date)
(PARTITION sonic_jan2009 VALUES LESS THAN(TO_DATE('02/01/2009','DD/MM/YYYY')),
PARTITION sonic_feb2009 VALUES LESS THAN(TO_DATE('03/01/2009','DD/MM/YYYY')),
PARTITION sonic_mar2009 VALUES LESS THAN(TO_DATE('04/01/2009','DD/MM/YYYY')));
Hash Partition
ÕâÖÖ·ÖÇøÊÇ»ùÓÚ Hash Ëã·¨µÄ£¬ÔÚÒ»¸ö»ò¶à¸öÁÐÉÏÓ¦Óà Hash º¯Êý£¬È»ºó½«±íÖеÄÊý¾Ý¾¡¿ÉÄÜÆ½¾ùµÄ´òÉ¢£¬·Ö²¼ÔÚ²»Í¬µÄ·ÖÇøÉÏ¡£
¸´ÖÆÄÚÈݵ½¼ôÌù°å ³ÌÐò´úÂë
Create TABLE sonic_hash
(sonic_id NUMBER(5),
sonic_name VARCHAR2(30),
sonic_week_no NUMBER(2))
PARTITION BY HASH(sonic_id)
PARTITIONS 4;
List Partition
ͨ¹ýÃ÷È·µÄ¹Ø¼ü×Ö£¬½«Êý¾Ý½øÐзÖÇø£¬ÕâЩ¹Ø¼ü×Ö¶¼ÊÇÀëÉ¢µÄ£¬Ò»°ãÊÇÎÞ¹æÂÉ¿ÉѵÄ
¸´ÖÆÄÚÈݵ½¼ôÌù°å ³ÌÐò´úÂë
Create TABLE sonic_list
(sonic_id NUMBER(5),
sonic_name VARCHAR2(30),
sonic_state VARCHAR2(20),
sonic_date DATE)
PARTITION BY LIST(sonic_state)
(PARTITION sonic_north VALUES('Ji lin', 'Bei Jing') COMPRESS,
PARTITION sonic_south VALUES('Guang dong', 'Hai nan', 'Yun nan'),
PARTITION sonic_central VALUES('Jiang su', 'Shang hai'));
Composite Partitioning
¹ËÃû˼Ò壬½«Ç°ÈýÕßÈÎÒâ
Ïà¹ØÎĵµ£º
truncate,delete,dropµÄÒìͬµã
×¢Òâ:ÕâÀï˵µÄdeleteÊÇÖ¸²»´øwhere×Ó¾äµÄdeleteÓï¾ä
Ïàͬµã:truncateºÍ²»´øwhere×Ó¾äµÄdelete, ÒÔ¼°drop¶¼»áɾ³ý±íÄÚµÄÊý¾Ý
²»Í¬µã:
1. truncateºÍ deleteֻɾ³ýÊý¾Ý²»É¾³ý±íµÄ½á¹¹(¶¨Òå)
dropÓï¾ä½«É¾³ý±íµÄ½á¹¹±»ÒÀÀµµÄÔ¼Êø(constrain),´¥·¢Æ÷(trigger),Ë÷Òý(index); ÒÀÀµÓÚ¸Ã±íµ ......
ͨ¹ý select * from table whereid=16701 for update Ëø×¡Ò»Õűí
ͨ¹ýÒÔÏÂÓï¾ä¿É²éѯ³ö±»Ëø×¡µÄ¶ÔÏó
SELECT OBJECT_ID,
SESSION_ID,
SERIAL#,
ORACLE_USERNAME,
&nb ......
CREATE OR REPLACE PROCEDURE kevin_proc(x varchar) IS
a VARCHAR(20);
b VARCHAR(20);
CURSOR mycur(rn NUMBER) IS SELECT * from t_kevin_test WHERE ROWNUM<rn;
BEGIN
OPEN mycur(10);
LOOP FETCH mycur INTO a,b;
EXIT WHEN mycur%NOTFOUND;
Dbms_Output.put_line('a: '||a);
Dbms_Output.put_line('b: '| ......
OracleµÄÈÕÆÚº¯Êý
³£ÓÃÈÕÆÚÐͺ¯Êý
1¡£Sysdate µ±Ç°ÈÕÆÚºÍʱ¼ä
SQL> Select sysdate from dual;
SYSDATE
----------
21-6ÔÂ -05
2¡£Last_day ±¾ÔÂ×îºóÒ»Ìì
SQL> Select last_day(sysdate) from dual;
LAST_DAY(S ......
select * from TTable1 for update Ëø¶¨±íµÄËùÓÐÐУ¬Ö»ÄܶÁ²»ÄÜд
2 select * from TTable1 where pkid = 1 for update Ö»Ëø¶¨pkid=1µÄÐÐ
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update Ëø¶¨Á½¸ö±íµÄËùÓмǼ
4 select * from Table1 a join Table2 b on a.pki ......