¡¾×ª¡¿ OracleÈ«¾ÖË÷ÒýºÍ±¾µØË÷Òý
OracleË÷Òý·ÖÇøÔÓ̸
<> OracleÊý¾Ý¿âÖУ¬ÓÐÁ½ÖÖÀàÐ͵ķÖÇøË÷Òý£¬È«¾ÖË÷ÒýºÍ±¾µØË÷Òý£¬ÆäÖб¾µØË÷ÒýÓÖ¿ÉÒÔ·ÖΪ±¾µØÇ°×ºË÷ÒýºÍ±¾µØ·Çǰ׺Ë÷Òý¡£ÏÂÃæ¾Í·Ö±ð¿´¿´Ã¿ÖÖÀàÐ͵ÄË÷Òý¸÷×ÔµÄÌØµã¡£
È«¾ÖË÷ÒýÒÔÕû¸ö±íµÄÊý¾ÝΪ¶ÔÏó½¨Á¢Ë÷Òý£¬Ë÷Òý·ÖÇøÖеÄË÷ÒýÌõÄ¿¼È¿ÉÄÜÊÇ»ùÓÚÏàͬµÄ¼üÖµµ«ÊÇÀ´×Ô²»Í¬µÄ·ÖÇø£¬Ò²¿ÉÄÜÊǶà¸ö²»Í¬¼üÖµµÄ×éºÏ¡£
È«¾ÖË÷Òý¼ÈÔÊÐíË÷Òý·ÖÇøµÄ¼üÖµºÍ±í·ÖÇø¼üÖµÏàͬ£¬Ò²¿ÉÒÔ²»Ïàͬ¡£È«¾ÖË÷ÒýºÍ±íÖ®¼äûÓÐÖ±½ÓµÄÁªÏµ£¬ÕâÒ»µãºÍ±¾µØË÷Òý²»Í¬¡£
SQL> create table orders (
order_no number,
part_no varchar2(40),
ord_date date
)
partition by range (ord_date)
(partition Q1 values less than (TO_DATE('01-APR-1999','DD-MON-YYYY')),
partition Q2 values less than (TO_DATE('01-JUL-1999','DD-MON-YYYY')),
partition Q3 values less than (TO_DATE('01-OCT-1999','DD-MON-YYYY')),
partition Q4 values less than (TO_DATE('01-JAN-2000','DD-MON-YYYY'))
)
;
Table created.
SQL> create index orders_global_1_idx
on orders(ord_date)
global partition by range (ord_date)
(partition GLOBAL1 values less than (TO_DATE('01-APR-1999','DD-MON-YYYY')),
partition GLOBAL2 values less than (TO_DATE('01-JUL-1999','DD-MON-YYYY')),
partition GLOBAL3 values less than (TO_DATE('01-OCT-1999','DD-MON-YYYY')),
partition GLOBAL4 values less than (MAXVALUE)
)
;
Index created.
SQL> create index orders_global_2_idx
&n
Ïà¹ØÎĵµ£º
ʹØCUBE ROLLUP GROUPING SETS£¨1£©
ÔÎÄÒý×Ô£º ¾ÛºÏÊÇÊý¾Ý²Ö¿âµÄ»ù´¡¡£ÎªÁËÌá¸ß¾ÛºÏµÄÐÔÄÜ¡£OracleÌṩÁËGroup By Ìõ¿îµÄÀ©Õ¹¡£
1£® CUBE, ROLLUPÀ©Õ¹
2£® 3¸ögroupingº¯Êý
3£® Grouping setÀ©Õ¹
CUBE ROLLUP ......
±íÀàÐÍ£º
1¶Ñ×éÖ¯±í£¨heap organized table£©£ºÕâЩ¾ÍÊÇ“ÆÕͨ”µÄ±ê×¼Êý¾Ý¿â±í¡£Êý¾ÝÒԶѵķ½Ê½¹ÜÀí¡£¶Ñ£¨heap£©ÊÇÒ»×é¿Õ¼ä£¬ÒÔÒ»ÖÖÓÐÐ©Ëæ»úµÄ·½Ê½Ê¹Óá£
2Ë÷Òý×éÖ¯±í£¨index organized table£©£ºÕâЩ±í°´Ë÷Òý½á¹¹´æ´¢¡£Õâ¾ÍÇ¿ÖÆÒªÇóÐб¾ÉíÓÐijÖÖÎïÀí˳Ðò¡£Ë÷Òý×éÖ¯±íIOTÖУ¬Êý¾ÝÒª¸ù¾ÝÖ÷¼üÓÐÐòµØ´æ´¢¡£
3Ë÷Ò ......
×ܽáÁËÒ»ÏÂɾ³ýÖØ¸´¼Ç¼µÄ·½·¨£¬ÒÔ¼°Ã¿ÖÖ·½·¨µÄÓÅȱµã¡£
¼ÙÉè±íÃûΪTbl£¬±íÖÐÓÐÈýÁÐcol1£¬col2£¬col3£¬ÆäÖÐcol1£¬col2ÊÇÖ÷¼ü£¬²¢ÇÒ£¬col1£¬col2ÉϼÓÁËË÷Òý¡£
1¡¢Í¨¹ý´´½¨ÁÙʱ±í
¿ÉÒÔ°ÑÊý¾ÝÏȵ¼Èëµ½Ò»¸öÁÙʱ±íÖУ¬È»ºóɾ³ýÔ±íµÄÊý¾Ý£¬ÔÙ°ÑÊý¾Ýµ¼»ØÔ±í£¬SQLÓï¾äÈçÏ£º
creat table tbl_tmp (select distinct* from tb ......
²é¿´ÕýÔÚÖ´ÐеÄsqlÓï¾ä
SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
²¶×½ÔËÐкܾõÄSQL
select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$ ......