ROLLUPºÍCUBEÓï¾ä¡£ ORACLE·Ö×éͳ¼Æ
ROLLUPºÍCUBEÓï¾ä¡£
OracleµÄGROUP
BYÓï¾ä³ýÁË×î»ù±¾µÄÓï·¨Í⣬»¹Ö§³ÖROLLUPºÍCUBEÓï¾ä¡£Èç¹ûÊÇROLLUP(A, B, C)µÄ»°£¬Ê×ÏÈ»á¶Ô(A¡¢B¡¢C)½øÐÐGROUP
BY£¬È»ºó¶Ô(A¡¢B)½øÐÐGROUP BY£¬È»ºóÊÇ(A)½øÐÐGROUP BY£¬×îºó¶ÔÈ«±í½øÐÐGROUP BY²Ù×÷¡£Èç¹ûÊÇGROUP BY
CUBE(A, B, C)£¬ÔòÊ×ÏÈ»á¶Ô(A¡¢B¡¢C)½øÐÐGROUP
BY£¬È»ºóÒÀ´ÎÊÇ(A¡¢B)£¬(A¡¢C)£¬(A)£¬(B¡¢C)£¬(B)£¬(C)£¬×îºó¶ÔÈ«±í½øÐÐGROUP BY²Ù×÷¡£
grouping_id()¿ÉÒÔÃÀ»¯Ð§¹û£º
OracleµÄGROUP BYÓï¾ä³ýÁË×î»ù±¾µÄÓï·¨Í⣬»¹Ö§³ÖROLLUPºÍCUBEÓï¾ä¡£
³ý±¾ÎÄÄÚÈÝÍ⣬Ä㻹¿É²Î¿¼£º
·ÖÎöº¯Êý²Î¿¼Êֲ᣺
http://xsb.itpub.net/post/419/33028
·ÖÎöº¯ÊýʹÓÃÀý×Ó½éÉÜ£º
http://xsb.itpub.net/post/419/44634
SQL> create table t as select * from dba_indexes;
±íÒÑ´´½¨¡£
SQL> select index_type, status, count(*) from t group by index_type, status;
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
LOB VALID 51
NORMAL N/A 25
NORMAL VALID 479
CLUSTER VALID 11
ÏÂÃæÀ´¿´¿´ROLLUPºÍCUBEÓï¾äµÄÖ´Ðнá¹û¡£
SQL> select index_type, status, count(*) from t group by rollup(index_type, status);
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
LOB VALID 51
LOB 51
NORMAL N/A 25
NORMAL VALID 479
NORMAL 504
CLUSTER VALID 11
CLUSTER 11
566
ÒÑÑ¡Ôñ8ÐС£
SQL> select index_type, status, count(*) from t group by cube(index_type, status);
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
566
N/A 25
VALID 541
LOB 51
LOB VALID 51
NORMAL 504
NORMAL N/A 25
NORMAL VALID 479
CLUSTER 11
CLUSTER VALID 11
ÒÑÑ¡Ôñ10ÐС£
²éѯ½á¹û²»ÊǺÜһĿÁËÈ»£¬ÏÂÃæÍ¨¹ýOracleÌṩµÄº¯ÊýGROUPINGÀ´ÕûÀíһϲéѯ½á¹û¡£
SQL> select grouping(index_type) g_ind, grouping(status) g_st, index_type, status, count(*)
2 from t group by rollup(index_type, status) order by 1, 2;
G_IND G_ST INDEX_TYPE STATUS COUNT(*)
---------- ---------- --------------------------- -------- ----------
0 0 LOB VALID 51
0 0 NORMAL N/A 25
0 0 NORMAL VALID 479
0 0 CLUSTER VALID 11
0 1 LOB 51
0 1 NORMAL 504
0 1 CLUSTER 11
1 1 566
ÒÑ
Ïà¹ØÎĵµ£º
ÏÔʾ±íÐÅÏ¢
1,ÏÔÊ¾ÌØ¶¨Óû§µÄ±í
DAT_TABLES ¿ÉÒÔÏÔʾËùÓÐÊý¾Ý¿â±íµÄÏêϸÐÅÏ¢
ALL_TABLES ¿ÉÒÔÏÔʾÓû§¿ÉÒÔ·ÃÎʵÄËùÓбíÐÅÏ¢
USER_TABLES ¿ÉÒÔÏÔʾµ±Ç°Óû§ËùÓбíµÄÐÅÏ¢
SELECT table_name,num_rows,pct_free,blocks,chain_cnt
from dba_tables WHERE owner=’SCOTT’;
Table_nameÓÃÓÚ±êʶ±íÃû,n ......
¸Õ²ÅÔÚ¹äÒ»¸öÍøÓѵIJ©¿ÍµÄʱºò·¢ÏÖÁËһƪ¹ØÓÚREDO¡¢UNDO¡¢COMMIT¡¢ROLLBAKCµÄÎÄÕ¡£ËäÈ»ÄÚÈÝ¿ÉÄܲ»ÊÇÌØ±ðÈ«Ãæ£¬¿ÉÊÇ»¹ÊÇ×ܽáµÄͦºÃµÄ£¬×ª¹ýÀ´·½±ã½«À´Ñ§Ï°¡£
==================================================================================
redo--> undo-->datafile
insertÒ»Ìõ¼Ç¼ʱ£¬±í¸úundoµÄÐÅÏ¢¶¼»á ......
SQL ServerÊý¾Ý¿âÓëOracleÊý¾Ý¿âÖ®¼ä×î´óµÄÇø±ðÒªÊô±í¿Õ¼äÉè¼Æ¡£OracleÊý¾Ý¿â¿ª´´ÐÔµØÌá³öÁ˱í¿Õ¼äµÄÉè¼ÆÀíÄÕâΪOracleÊý¾Ý¿âµÄ¸ßÐÔÄÜ×ö³öÁ˲»¿ÉÄ¥ÃðµÄ¹±Ïס£¿ÉÒÔÕâô˵£¬OracleÖкܶàÓÅ»¯¶¼ÊÇ»ùÓÚ±í¿Õ¼äµÄÉè¼ÆÀíÄî¶øÊµÏֵġ£
¡¡¡¡µäÐÍÓ¦ÓÃÒ»£º¿ØÖÆÓû§ËùÕ¼Óõıí¿Õ¼äÅä¶î¡£
¡¡¡¡ÔÚһЩ´óÐ͵ÄÊý¾Ý¿âÓ¦ÓÃÖУ¬ÎÒÃÇÐèÒª¿Ø ......
Ò»£¬PL/SQL¿éµÄ½á¹¹ºÍ×é³ÉÔªËØ
PL/SQL³ÌÐòÓÉÉùÃ÷²¿·Ö£¬Ö´Ðв¿·Ö£¬Òì³£´¦Àí²¿·ÖÈý¸ö²¿·Ö×é³É¡£½á¹¹ÈçÏ£º
DECLARE
/*ÉùÃ÷²¿·Ö£ºÔÚ´ËÉùÃ÷PL/SQL±äÁ¿£¬ÀàÐͼ°Óα꣬ÒÔ¼°¾Ö²¿µÄ´æ´¢¹ý³ÌºÍº¯Êý*/
BEGIN
/*Ö´Ðв¿·Ö£º¹ý³Ì¼°sqlÓï¾ä£¬³ÌÐòÖ÷Òª²¿·Ö£¬ÊDZØÐëµÄ*/
EXCEPTION
/*Òì³£´¦Àí²¿·Ö£º´íÎó´¦Àí*/
END
PL/SQL¿ ......