ORACLEÎﻯÊÓͼ ÀûÓÃά¶ÔÏóÀ´ÓÅ»¯Êý¾Ý²Ö¿âµÄ¸ß¼¶¼¼ÇÉ
http://www.anysql.net/oracle/oracle_olap_dimension.html
ÔÚOracleµÄÊý¾Ý²Ö¿â(OLAP)ÖÐ, ʵÌ廯ÊÓͼ(MVIEW), ²éÑ¯ÖØÐ´(Query Rewrite)ºÍά(Dimension)ÊǷdz£ÖØÒªµÄÓÅ»¯ÊÖ¶Î, ¶ÔÓÚǰÁ½ÕßÎÒ²»ÏëÔÚÕâ¶ùÖØ¸´½²ÁË, Ö÷ÒªÀ´ÌåÑéÒ»ÏÂάµÄ×÷ÓÃ. Òª·¢»ÓάµÄ×÷ÓÃ, »¹ÊÇÐèÒªÓõ½Ç°ÃæÁ½Õß, ÏÂÃæÊÇÎÒÉè¼ÆµÄÖ»ÓÐÒ»¸öά±íµÄ×î¼òµ¥µÄÀý×Ó. Êý¾Ý¿âÓû§³ýÁËconnect, resourceÍâ, »¹Òª¸øÓèQuery Rewrite, Create Materialized View, Create DimensionȨÏÞ.
1, ´´½¨Ò»¸öά»¤±í.
CREATE TABLE TIME_DIM
AS
SELECT TO_CHAR(SYSDATE+ROWNUM,'YYYY') F_YEAR,
TO_CHAR(SYSDATE+ROWNUM,'YYYY-Q') F_QUATER,
TO_CHAR(SYSDATE+ROWNUM,'YYYY-MM') F_MONTH,
TRUNC(SYSDATE+ROWNUM,'DD') F_DAY
from DBA_OBJECTS
WHERE ROWNUM < 1000;
ALTER TABLE TIME_DIM MODIFY F_YEAR NOT NULL;
ALTER TABLE TIME_DIM MODIFY F_QUATER NOT NULL;
ALTER TABLE TIME_DIM MODIFY F_MONTH NOT NULL;
ALTER TABLE TIME_DIM MODIFY F_DAY NOT NULL;
ALTER TABLE TIME_DIM ADD PRIMARY KEY (F_DAY);
2, ´´½¨Ò»¸öÊÂʵ±í.
CREATE TABLE FACT_SALES
AS
SELECT TRUNC(SYSDATE+ROWNUM,'DD') F_DAY,
TRUNC(DBMS_RANDOM.VALUE * 10000,2) M_AMOUNT1,
TRUNC(DBMS_RANDOM.VALUE * 10000,2) M_AMOUNT2
from DBA_OBJECTS
WHERE ROWNUM < 1000;
-- Please execute the following insert multiple times
INSERT INTO FACT_SALES
SELECT F_DAY,
TRUNC(DBMS_RANDOM.VALUE * 10000,2) M_AMOUNT1,
TRUNC(DBMS_RANDOM.VALUE * 10000,2) M_AMOUNT2
from FACT_SALES
/
ALTER TABLE FACT_SALES MODIFY F_DAY NOT NULL;
ALTER TABLE FACT_SALES ADD FOREIGN KEY (F_DAY) REFERENCES TIME_DIM(F_DAY);
&
Ïà¹ØÎĵµ£º
µ±LGWR´¦ÓÚ¿ÕÏÐ״̬ʱ£¬ËüÒÀÀµÓÚrdbms rpc messageµÈ´ýʼþ£¬´¦ÓÚÐÝÃß״̬£¬Ö±µ½ÈýÃëʱ¼äµ½£¬Èç¹ûÕâ¸öʱºòLGWR·¢ÏÖÓÐRedoÐÅÏ¢ÐèҪд³öµÄ»°£¬ÄÇôLGWR½«Ö´ÐÐдµÄ²Ù×÷£¬log file parallel writeµÈ´ýʼþ½«»á³öÏÖ¡£
¡¡¡¡×ܽáÒ»ÏÂRedoдµÄ´¥·¢Ìõ¼þ£º
¡¡¡¡1£¬Ã¿ÈýÃëÖÓ³¬Ê±(timeout)£º
µ±LGWR´¦ÓÚ¿ÕÏÐ״̬ʱ£¬ËüÒÀÀµÓÚrdbms r ......
¿ÉÒÔ¿´µ½MVIEWÔÚQuery RewriteÖеÄÖØÒªÐÔ, ÒªÔÚʵ¼ÊÓ¦ÓÃÖÐʹÓÃ, ¾ÍµÃÖªµÀËüµÄºÜ¶à·½Ãæ, ÆäÖÐË¢ÐÂÊÇ×îÖ÷ÒªµÄ:
1, MVIEWÈÕÖ¾µÄ½¨Á¢
2, »ã×ÜÐ͵ÄMIVEWµÄË¢ÐÂ
3, JOINÀàÐ͵ÄMVIEWµÄË¢ÐÂ
4, ¸ü¸´ÔÓµÄMVIEWµÄË¢ÐÂ
5, ·ÖÇøÊ±µÄMVIEWµÄË¢ÐÂ
ÔÚÕâ¶ùÎÒÃÇÖ÷ÒªÌÖÂÛµÄÊÇÈçºÎʵÏÖFastË¢ÐÂ, ·ñÔòûÓжàÉ ......
ÔËÐÐÁËOracleµÄLinux·þÎñÆ÷¸ü¸ÄÖ÷»úÃû
¼ÙÈçÒª°ÑÖ÷»úÃû¸ÄΪoratest¡£
$±íʾoracleÓû§²Ù×÷£»
#±íʾrootÓû§²Ù×÷¡£
DB£ºoracle10.2
OS£ºRHEL4.5
µÚÒ»²½£¬¹Ø±ÕÊý¾Ý¿âºÍ¼àÌý£¬dbconsole£º
$ dbshut
$ lsnrctl stop
µÚ¶þ²¿£º
# hostname oratest
µÚÈý²½£º
# vi /etc/sysconfig/network
¸ü¸Ähostname²ÎÊý¡£
µÚËIJ½ ......
µ¼³ö EXP USER/PASSWORD@ODBC FILE=C£º\***.DMP ROWS=N //²»±£´æÊý¾Ý£»
µ¼³ö EXP USER/PASSWORD@ODBC FILE=C£º\***.DMP //±£´æÊý¾Ý£»
µ¼³ö EXP USER/PASSWORD@ODBC FILE=C£º\***.DMP full=y //È«²¿µ¼³ö£»
µ¼Èë imp user/password@odbc file=c:\***.dmp full=y ignore=y;
OracleÊý¾Ýµ¼Èëµ¼³öimp/exp¾ÍÏà ......
linuxÏÂoracle°²×°£º
Oracle¹«Ë¾Ðû³ÆÔÚLinuxϰ²×°Oracle9iÊý¾Ý¿âÖÁÉÙÒªÓÐ512MBµÄÄÚ´æºÍÖÁÉÙ1GB»òÕßÁ½±¶
ÄÚ´æ´óСµÄ½»»»¿Õ¼ä£¬¶ÔÓÚϵͳÄÚ´æ´óÓÚ2GBµÄ·þÎñÆ÷£¬½»»»¿Õ¼ä¿ÉÒÔ½éÓÚ2GB—4GBÖ®¼ä¡£
Èç¹ûÊÇΪÁËÔÚһ̨½öÓÐ256MÄÚ´æµÄÆÕͨPC»úÉÏÊÔÓÃOracle9 ......