ORACLEÎﻯÊÓͼ Query RewriteµÄÒ»°ãÀí½âÖ®¶þ
ÔÚOracleµÄQuery RewriteÖÐÖ÷ÒªÓÐÈýµã, µÚÒ»ÊÇҪʹÓÃCBO; µÚ¶þÊÇÒªÉèÖÃquery rewrite enabled²ÎÊýΪTRUE; µÚÈýÊÇÒªÏÈÔñÉèÖÃquery rewrite integrity²ÎÊýµÄÖµ(stale_tolerated, trusted, enforced). ¶ÔÓÚµÚÒ»µã, ÎÒÃÇ×îºÃanalyzeÏà¹ØµÄ±í¼°Ë÷Òý¼°MV; ¶ÔÓÚµÚ¶þµã,Õâ¸ö²ÎÊýÖ»ÓÐÁ½¸öÖµ(true, false), ºÜ¼òµ¥; ¶ÔÓÚµÚÈýµã, ÎÒÃÇÏÈÀ´¿´OracleµÄ¹Ù·½¶ÔÓÚÕâ¸ö²ÎÊýµÄ½âÊÍ:
ENFORCED
Oracle enforces and guarantees consistency and integrity
TRUSTED
Oracle allows rewrites using relationships that have been declared, but that are not enforced by Oracle.
STALE_TOLERATED
Oracle allows rewrites using unenforced relationships. Materialized views are eligible for rewrite even if they are known to be inconsistent with the underlying detail data.
Õâ¸ö²ÎÊýÓеãÄÑÓÚÀí½âһЩ, µ«Ö÷ÒªºÍÊý¾ÝµÄÒ»ÖÂÐÔÓйØ, ÔÚOracleµÄQuery RewriteÖÐ, Ò»Ð©Ô¼ÊøµÄÉùÃ÷»ò״̬ºÍOracle¾öÓÚ¿É·ñQuery RewriteÓкܴóµÄ¹ØÏµ. ENFORCED±íʾOracleÖ»ÏàÐÅEnabledºÍValidatedµÄÔ¼Êø, ¶øTrustedÔòÏàÐÅRELYµÄÔ¼Êø, ¾ÍËãÕâ¸öÔ¼ÊøÃ»ÓÐEnabledºÍValidated, ÕâÁ½ÖÖ¶¼ÒªÇóMVIEWÖеÄÊý¾ÝÊǼ°Ê±Ë¢ÐµÄ,¶øSTALE_TOLERATEDÔò¿ÉÒÔÈÝÈÌÒ»ÇÐ, ¾ÍËãÖмä±íµÄÊý¾ÝÊǾɵÄ, Ö¸»ù±íÓÐÐÂÊý¾ÝÐ޸ĶøMVIEW»¹Ã»ÓÐˢеÄÇé¿öÏÂ, OracleÒ²»áÑ¡ÔñʹÓÃQuery RewriteÀ´×÷²éѯ, ÔÚÕâÖÖÇé¿öÏÂ, ²é³öÀ´µÄÊý¾Ý¿ÉÄÜÊDz»×¼µÄ. ÏÂÃæÎÒÃÇÀ´×÷Ò»¸öÀý×ÓÀ´ÏÔʾenforcedÓëtrustedµÄ²»Í¬:
½Ó×ÅÇ°ÃæµÄÀý×Ó,ÎÒÃÇ´´½¨ÕâÑùÒ»¸öʵÌ廯ÊÓͼ:
CREATE MATERIALIZED VIEW MV_TABLE
ENABLE QUERY REWRITE
AS
SELECT U.USER#,COUNT(*) OBJCNT from USR_TABLE U,OBJ_TABLE O
WHERE U.USER#=O.USER#
group by u.user#
½ÓÏÂÀ´ÎÒÃÇ´´½¨ÕâÑùµÄÁ½¸öÔ¼Êø:
ALTER TABLE USR_TABLE ADD PRIMARY KEY (USER#) RELY DISABLE;
ALTER TABLE OBJ_TABLE ADD FOREIGN KEY (USER#)
REFERENCES USR_TABLE(USER#) RELY DISABLE;
ϽÓÀ´´´½¨Ò»¸öUSR_LEVELµÄ±í, ÈçÏÂËùʾ:
CREATE TABLE USR_LEVLEL AS SELECT USER#, TRUNC(USER#/10) ULEVEL from USR_TABLE;
ʵÑéËùÐèÒªµÄ±í¶¼½¨ÆðÀ´ÁË, ¶ÔÈý¸ö±íºÍÒ»¸öMVIEW½øÐзÖÎöºó, ÏÂÃæÀ´×ö²âÊÔ:
SQL> SHOW PARAMETE
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
Êý¾Ý·ÖÇøÊÇÕë¶Ô±íµÄ¡£
ΪʲôҪ½«±í·ÖÇø£¿
·ÖÇø±íͨ³£´æ´¢ÔÚ½ÏСµÄÎļþ£¨<2GB£©ÖУ¬Ò×ÓÚ±¸·Ý¡£
Ó²¼þ¹ÊÕÏʱ£¬Ö»ÓÐÊý¾Ý¿âµÄһС²¿·Ö»áÊܵ½Ó°Ïì¡£
Ò×ÓÚÊý¾Ý·ÖÎö¡£
¿ÉÒÔÔÚÆäËû·ÖÇø¼ÌÐøÌṩ·þÎñµÄͬʱά»¤ÐèÒª½øÐÐά»¤µÄ±íµÄ·ÖÇø¡£alter table sale drop partition q1_1999;
»ùÓÚÁ¿³ÌµÄ·ÖÇø
¹Ø¼üÊÇÑ¡Ôñ·ÖÇø¼ü£¬ËüÓ¦¸Ã¿ ......
1.»ù´¡ÈÏʶ
DBMS_RANDOM°üµÄÏêϸÐÅÏ¢£º
select text from all_source
where name = 'DBMS_RANDOM'
......
µ±ÄãÔÚÊý¾Ý¿âÖд´½¨Êý¾Ý±íµÄʱºò£¬ÄãÐèÒª¶¨Òå±íÖÐËùÓÐ×ֶεÄÀàÐÍ¡£ORACLEÓÐÐí¶àÖÖÊý¾ÝÀàÐÍÒÔÂú×ãÄãµÄÐèÒª¡£Êý¾ÝÀàÐÍ´óÔ¼·ÖΪ£ºcharacter, number, date, LOB, ºÍRAWµÈÀàÐÍ¡£ËäÈ»ORACLE8iÒ²ÔÊÐíÄã×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬µ«ÊÇËüÃÇÊÇ×î»ù±¾µÄÊý¾ÝÀàÐÍ¡£ÔÚÏÂÃæµÄÎÄÕÂÖÐÄ㽫Á˽⵽ËûÃÇÔÚoracle ÖеÄÓ÷¨¡¢ÏÞÖÆÒÔ¼°ÔÊÐíÖµ¡£
¡¡¡¡
¡¡¡¡ ......
ÎÒÃǾ³£Ì¸¼°OracleµÄȨÏÞ£¬±ÈÈçConnect£¬DBA£¬resource£¬ sysdba, select any
table,
select_catelog_roleÕâÑùһЩȨÏÞ£¬ÈÃÎÒÃÇÑÛ»¨çÔÂҵģ¬ÄÇôÈçºÎÀ´Çø·ÖÕâЩÖÖÀà·±¶àµÄprivilegeÖв»ÖÁÓÚÑÛÃÔÀëÄØ£¬Õâ¸öÎÄÕ½«
»á¶ÔÄãÔÚÕâ·½ÃæµÄÁ˽âÆðµ½°ïÖú¡£
ÒÔÉÏÎÒÃÇ¿´µ½µÄÕâЩȨÏÞ£¬¶¼ÊÇ¿ÉÒÔͨ¹ýg ......