![]() |
|
綰у埆: 鍒濈駭
Alexander Kuznetsov , 鑺濆姞鍝ワ紝浼婂埄璇烘柉宸?br />
2002 騫?8 鏈?01 鏃?/p>
鏈夋椂鍊欙紝鐗╃悊鏁版嵁搴撶粨鏋勪腑鐨勪竴嬈$畝鍗曟洿鏀逛細寮曚漢娉ㄧ洰鍦版敼榪涙煡璇㈡ц兘銆傞櫎浜嗙儲寮曞錛孌B2 UDB 榪樹負鎮ㄦ彁渚涗簡鎬葷粨琛紙瀹炰緥鍖栫殑鏌ヨ琛級錛屽湪璁稿鎯呭喌涓嬶紝榪欎簺琛ㄦ瘮绱㈠紩鏇存湁鏁堛傛湰鏂囧皢鎻愪緵涓浜涚ず渚嬫潵婕旂ず浣跨敤鎬葷粨琛ㄧ殑浼樼偣銆?/blockquote>鏈夋椂鍊欙紝鐗╃悊鏁版嵁搴撶粨鏋勪腑鐨勪竴嬈$畝鍗曟洿鏀逛細鏄捐憲鍦版敼榪涙煡璇㈡ц兘銆傞櫎浜嗙儲寮曞錛孌B2廬 Universal Database鈩?榪樹負鎮ㄦ彁渚涘疄渚嬪寲鐨勬煡璇㈣〃錛堝湪鐗堟湰 7.2 鍜屾洿鏃╃殑鍙戣鐗堜腑錛岀О涓衡滄葷粨琛ㄢ濓級錛屽湪璁稿鎯呭喌涓嬶紝榪欎簺琛ㄦ瘮绱㈠紩鏇存湁鏁堛傚叾瀹烇紝瀹炰緥鍖栫殑鏌ヨ琛紙materialized query table錛孧QT錛夋槸鏍規嵁鏌ヨ緇撴灉瀹氫箟鐨勮〃銆傛湰鏂囧皢鎻忚堪涓浜涚ず渚嬶紝鍦ㄨ繖浜涚ず渚嬩腑錛屼笌鍗曠嫭浣跨敤绱㈠紩鐩告瘮錛孧QT 鎻愪緵鏇存湁鏁堢殑鎬ц兘鏀硅繘銆?
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
MQT 鍙互甯姪鎮ㄩ伩鍏嶅浜庢瘡嬈℃煡璇㈤噸澶嶈綆楋紙濡?SUM錛夈傝鎴戜滑鍋囪鏈変竴涓悕涓?CUSTOMER_ORDER 鐨勮〃錛屽畠瀛樺偍浜嗗ソ鍑犲勾鐨勫鎴瘋鍗曘傝琛ㄧ殑璁板綍瓚呰繃涓鐧句竾鏉★紝騫沖潎琛屽涓?400 涓瓧鑺傘傜幇鍦紝鍋囪鎴戜滑蹇呴』瀵?2001 騫寸殑璁㈠崟榪愯澶氭鏌ヨ錛屽茍涓旀垜浠彧闇瑕佽〃涓殑涓夊垪錛屽涓嬫墍紺猴細
select SUM(AMOUNT), trans_dt from db2inst2.CUSTOMER_ORDER where trans_dt between '1/1/2001' and '12/31/2001' group by trans_dt
鎴?/p>
select SUM(AMOUNT), status from db2inst2.CUSTOMER_ORDER where trans_dt between '1/1/2001' and '12/31/2001' group by status
濡傛灉鏈夐傚綋鐨勭儲寮曪紝閭d箞榪欎簺鏌ヨ琚綔涓虹儲寮曟壂鎻忔潵鎵ц銆?娓呭崟 1鏄墽琛岃鍒掔殑鎽樺綍錛屽畠琛ㄦ槑浣跨敤绱㈠紩鎵弿榪愯鏌ヨ鐨勯璁℃垚鏈槸 152455銆?
娓呭崟 1. 瀵?CUSTOMER_ORDER 琛ㄨ繍琛屾煡璇㈢殑鎴愭湰
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: select SUM(AMOUNT), trans_dt from db2inst2.CUSTOMER_ORDER where trans_dt between '1/1/2001' and '12/31/2001' group by trans_dt Estimated Cost = 152455 Estimated Cardinality = 378 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛? Subsection #2: Access Table Name = DB2INST2.CUSTOMER_ORDER ID = 2,591 | #Columns = 1 | Index Scan: Name = DB2INST2.CUST_ORD_TRANS_DT ID = 4 | | Index Columns: | | | 1: TRANS_DT (Ascending) 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛? End of section
鐜板湪錛岃鎴戜滑鍒涘緩涓涓?MQT錛屽畠鍖呭惈鎴戜滑鎵闇鐨勫垪鍜岃錛屽寘鎷誨拰璁$畻銆?/p>
CREATE TABLE DB2INST2.SUMMARY_CUSTOMER_ORDER_2001 AS (SELECT SUM(AMOUNT) AS TOTAL_SUM, TRANS_DT, STATUS FROM DB2INST2.CUSTOMER_ORDER WHERE TRANS_DT BETWEEN '1/1/2001' AND '12/31/2001' GROUP BY TRANS_DT, STATUS) DATA INITIALLY DEFERRED REFRESH DEFERRED;
瀛愬彞
DATA INITIALLY DEFERRED
琛ㄧず錛氭暟鎹笉浣滀負 CREATE TABLE 璇彞鐨勪竴閮ㄥ垎鎻掑叆鍒拌〃涓傝屾槸鎮ㄥ繀欏繪墽琛?REFRESH TABLE 璇彞鏉ュ~鍏呰〃銆傚瓙鍙?REFRESH DEFERRED
琛ㄧず錛氳〃涓殑鏁版嵁浠呬綔涓哄彂鍑?REFRESH TABLE 璇彞鏃剁殑蹇収鍙嶆槧鏌ヨ緇撴灉銆傛湁鍏沖垱寤?MQT 鐨勬洿澶氫俊鎭紝璇峰弬闃?SQL Reference銆?褰撴垜浠噯澶囧~鍏呭垰鎵嶅垱寤虹殑 MQT 鏃訛紝鍙戝嚭涓嬮潰鐨勮鍙ワ細
REFRESH TABLE DB2INST2.SUMMARY_CUSTOMER_ORDER_2001;
鐜板湪錛屽 MQT 鐨勬煡璇㈤熷害蹇緢澶氾紝鍥犱負 MQT 鐨勫ぇ灝忕浉褰撳皬錛屽畠鐨勮寰堢煭錛堜笌鍩鴻〃鐨?400 涓瓧鑺傜浉姣旓紝瀹冩墠 45 涓瓧鑺傦級銆?娓呭崟 2 鏄劇ず浜嗙敱 dynexpln 鐢熸垚鐨勬墽琛岃鍒掔殑鎽樺綍錛屽畠琛ㄦ槑浜嗕竴涓樉钁楃殑鎬ц兘鏀硅繘錛屼笌涓婁竴涓鍒掔殑棰勮鎴愭湰 152455 鐩告瘮錛屽畠鍙湁 101銆?
娓呭崟 2. 瀵?MQT 榪愯鏌ヨ鍑忓皯浜嗘垚鏈?/a>
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: select sum(total_sum), trans_dt from db2inst2.summary_customer_order_2001 where trans_dt between '1/1/2001' and '12/31/2001' group by trans_dt Estimated Cost = 101 Estimated Cardinality = 25 榪欓噷鐪佺暐浜嗕竴浜涜 Subsection #1: Access Summary Table Name = DB2INST2.SUMMARY_CUSTOMER_ORDER_2001 ID = 2,44 | #Columns = 2 | Relation Scan 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛? | | Sortheap Allocation Parameters: | | | #Rows = 21 | | | Row Width = 45 | | Piped 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛?
娉細濡傛灉 2001 騫?CUSTOMER_ORDER 涓殑鏁版嵁鍦ㄥ埛鏂頒箣鍚庡張榪涜浜嗘洿鏂幫紝鍒欓渶瑕佸啀嬈″埛鏂?MQT銆?/p>
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
璁╂垜浠亣璁撅紝鎴戜滑緇忓父闇瑕佹渶鏂扮殑 2002 騫存昏銆傝繃鍘誨湪 2002 騫?1 鏈?3 鏃ヨ繍琛屽緱闈炲父蹇殑鎶ュ憡錛屽湪 5 鏈堝氨榪愯寰楁參澶氫簡錛屽洜涓?2002 騫寸殑鏁版嵁閲忓鍔犱簡銆傛濡傛垜浠墠闈㈡墍鎻忚堪鐨勯偅鏍鳳紝鏌ヨ鍦?CUSTOMER_ORDER 琛ㄤ笂浣滀負绱㈠紩鎵弿鎵ц銆?
鐜板湪錛屾垜浠簲璇ヨ冭檻 MQT 鑳藉浣曞府鍔╂垜浠敼榪涙ц兘銆傜劧鑰岋紝鍥犱負鏁版嵁濮嬬粓鍦ㄦ洿鏂拌屼笖鎴戜滑闇瑕佹渶鏂版暟鎹紝鎵浠ヤ笉鑳戒嬌鐢?REFRESH DEFERRED錛屽洜涓轟笅涓嬈℃洿鏂板熀琛ㄦ椂錛孧QT 灝嗕笉涓庡熀琛ㄥ悓姝ャ傜幇鍦紝璁╂垜浠敤 REFRESH IMMEDIATE 鍜?ENABLE QUERY OPTIMIZATION 閫夐」鏉ュ垱寤?MQT銆?/p>
CREATE TABLE DB2INST2.SUMMARY_CUSTOMER_ORDER_2002 AS( SELECT TRANS_DT, STATUS, COUNT(*) AS COUNT_ALL, SUM(AMOUNT) AS SUM_AMOUNT, COUNT(AMOUNT) AS COUNT_AMOUNT FROM DB2INST2.CUSTOMER_ORDER GROUP BY TRANS_DT, STATUS) DATA INITIALLY DEFERRED REFRESH IMMEDIATE ENABLE QUERY OPTIMIZATION;
REFRESH IMMEDIATE
琛ㄧず錛氬湪鐢?REFRESH TABLE 璇彞濉厖 MQT 鍚庯紝MQT 鐨勫唴瀹瑰緇堟槸鏈鏂扮殑銆?閲嶈浜嬮」錛?/b>涓轟簡浣夸紭鍖栧櫒鑳藉鑷姩閫夋嫨 MQT錛孍NABLE QUERY OPTIMIZATION 蹇呴』鏄湁鏁堢殑錛堣繖鏄己鐪佸鹼級銆?
鍏跺畠璇硶璇存槑錛?/b>鎵鏈夎仛鍚堥兘鍑虹幇鍦?SELECT 鍒楄〃鐨勬湯灝俱傚彟澶栵紝铏界劧鎴戜滑鐨勪笟鍔″彧鍏蟲敞 SUM(AMOUNT)錛屼絾鎴戜滑浠嶅繀欏誨皢 COUNT(*) 鍜?COUNT(AMOUNT) 鍖呮嫭鍦ㄥ叏鏌ヨ涓傚師鍥犲緢瀹規槗璁頒綇銆傝鎴戜滑鍋囪姝e湪浠庡熀琛ㄤ腑鍒犻櫎涓涓粰瀹氭棩鏈熺殑鎵鏈夎褰曪細
DELETE FROM DB2INST2.CUSTOMER_ORDER WHERE TRANS_DT = ?/1/2002?
鐜板湪錛孌B2 蹇呴』媯嫻嬪埌鐗瑰畾鏃ユ湡鐨勬墍鏈夎褰曢兘宸叉秷澶卞茍鍒犻櫎 MQT 涓殑鎵鏈夌浉搴旇褰曘傛湁浜?COUNT 瀛楁灝卞彲浠ヤ嬌 DB2 蹇熸墽琛屽畠錛岃屼笉蹇呮壂鎻忚〃鎴栧叾绱㈠紩銆備粎褰?AMOUNT 鍒楀彲絀烘椂錛屾墠闇瑕?COUNT(AMOUNT)銆?/p>
鐜板湪錛岃濉厖 MQT 騫跺埛鏂板叾緇熻淇℃伅浜嗭細
REFRESH TABLE DB2INST2.SUMMARY_CUSTOMER_ORDER_2002; RUNSTATS ON TABLE DB2INST2.SUMMARY_CUSTOMER_ORDER_2002 WITH DISTRIBUTION;
鐜板湪錛岃鎴戜滑鐪嬩竴涓嬫煡璇㈡ц兘鏄浣曟敼榪涚殑錛圗stimated Cost = 392錛夈?娓呭崟 3鏄煡璇㈡墽琛岃鍒掔殑鎽樺綍錛?
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: select SUM(AMOUNT), trans_dt from db2inst2.customer_order where trans_dt >= '1/1/2002' group by trans_dt Estimated Cost = 392 Estimated Cardinality = 268 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛? Subsection #1: Access Summary Table Name = DB2INST2.SUMMARY_CUSTOMER_ORDER_2002 ID = 2,46 | #Columns = 2 | Relation Scan
娉細琛?CUSTOMER_ORDER錛堜笉鏄葷粨琛級鏄湪鏌ヨ涓寚瀹氱殑銆備紭鍖栧櫒宸茬粡鑷姩閫夋嫨浣跨敤 MQT銆?/p>
鏃犺浣曟椂淇敼 CUSTOMER_ORDER 琛紝浜掓枼鐨勮〃閿佸氨浼氬湪 SUMMARY_CUSTOMER_ORDER_2002 涓婁繚鐣欙紝鐩村埌浜嬪姟緇撴潫涓烘銆傚彧鏈夊悓鏃跺叿鏈夎仛鍚堝嚱鏁板拰 REFRESH IMMEDIATE 閫夐」鐨?MQT 鎵嶄細榪欐牱銆傚洜姝わ紝淇敼 CUSTOMER_ORDER 涓浉鍏沖瓧孌碉紙鍖呮嫭鎵鏈夋彃鍏ュ拰鍒犻櫎錛夌殑浜嬪姟蹇呴』寰堢煭錛屼互鍑忓皯閿佷簤鐢ㄣ傝繖涓棶棰樹笉閫傜敤浜庣敤 REFRESH DEFERRED 閫夐」鍒涘緩鐨?MQT錛屼篃涓嶉傜敤浜庡鍒剁殑 MQT錛堝湪涓嬩竴鑺備腑鎻忚堪錛夈?
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
璁╂垜浠亣璁懼湪鍒嗗尯鐜涓湁涓涓悕涓?CUSTOMER_DATA 鐨勫ぇ琛ㄣ傝琛?CUSTOMER_DATA 涓庡畠鐨勫瓙琛ㄥ茍緗紙Collocate錛夈傚垎鍖洪敭鏄郴緇熺敓鎴愮殑鏁存暟 CUSTOMER_ID銆傝〃 CUSTOMER_DATA 鏈変竴涓鍙︿竴涓〃 ZIP_CODE 鐨勫紩鐢ㄣ傝〃 CUSTOMER_DATA 鍜?ZIP_CODE 鏈騫剁疆銆傜劧鑰岋紝榪欎袱涓〃甯稿父榪炴帴鍦ㄤ竴璧楓傝鎴戜滑鐮旂┒涓涓?娓呭崟 4涓墍紺虹殑璁塊棶璁″垝銆?
娓呭崟 4. 涓?ZIP_CODE 鐨勮繛鎺ヤ細寮曡搗璺ㄨ妭鐐瑰箍鎾?/a>
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: select c.*, z.zip, z.state_name, z.country_name from db2inst2.customer_address c join db2inst2.zip_code z on c.zip_cd = z.zip_cd Estimated Cost = 100975 Estimated Cardinality = 255819 Coordinator Subsection: Distribute Subsection #2 | Broadcast to Node List | | Nodes = 0, 1 Distribute Subsection #1 | Broadcast to Node List | | Nodes = 0, 1 Access Table Queue ID = q1 #Columns = 38 Return Data to Application | #Columns = 38 Subsection #1: Access Table Queue ID = q2 #Columns = 4 | Output Sorted | | #Key Columns = 1 | | | Key 1: (Ascending) Nested Loop Join | Access Table Name = DB2INST2.CUSTOMER_ADDRESS ID = 2,591 | | #Columns = 35 | | Index Scan: Name = DB2INST2.CU_ZIP_CD ID = 2 | | | Index Columns: | | | | 1: ZIP_CD (Ascending) | | | #Key Columns = 1 | | | | Start Key: Inclusive Value | | | | | 1: ? | | | | Stop Key: Inclusive Value | | | | | 1: ? | | | Data Prefetch: Eligible 162 | | | Index Prefetch: Eligible 162 | | Lock Intents | | | Table: Intent Share | | | Row : Next Key Share | | Insert Into Asynchronous Table Queue ID = q1 | | | Broadcast to Coordinator Node | | | Rows Can Overflow to Temporary Table Insert Into Asynchronous Table Queue Completion ID = q1 Subsection #2: Access Table Name = DB2INST2.ZIP_CODE ID = 2,590 | #Columns = 4 | Relation Scan | | Prefetch: Eligible | Lock Intents | | Table: Intent Share | | Row : Next Key Share | Insert Into Sorted Temp Table ID = t1 | | #Columns = 4 | | #Sort Key Columns = 1 | | | Key 1: ZIP_CD (Ascending) | | Sortheap Allocation Parameters: | | | #Rows = 4479 | | | Row Width = 36 | | Piped Sorted Temp Table Completion ID = t1 Access Temp Table ID = t1 | #Columns = 4 | Relation Scan | | Prefetch: Eligible | Insert Into Asynchronous Table Queue ID = q2 | | Broadcast to All Nodes of Subsection 1 | | Rows Can Overflow to Temporary Table Insert Into Asynchronous Table Queue Completion ID = q2 End of section
ZIP_CODE 琛ㄤ笉浼氱粡甯告洿鏂幫紙鍥犱負涓嶅父鏈夋柊鐨勯偖鏀跨紪鐮侊級錛屼絾浼氱粡甯告垚涓鴻繛鎺ョ洰鏍囥傛瘡嬈″彂鍑哄鑷磋繛鎺ョ殑鏌ヨ鏃訛紝蹇呴』灝?ZIP_CODE 琛ㄥ箍鎾埌姣忎釜鑺傜偣銆?/p>
榪欏浜庤浣跨敤 澶嶅埗鐨?/i> MQT 鏉ヨ錛屽彲鑳芥槸涓ソ鎯呭喌錛屽畠鍩轟簬鍙兘宸茬粡鍦ㄥ崟涓垎鍖鴻妭鐐圭粍涓垱寤虹殑琛紝浣嗘偍闇瑕佸湪鑺傜偣緇勪腑鐨勬墍鏈夋暟鎹簱鍒嗗尯涓繘琛屽鍒訛紝浠ヤ究鍚敤棰戠箒璁塊棶鐨勬暟鎹殑騫剁疆銆傝鍒涘緩澶嶅埗鐨?MQT錛岃皟鐢ㄥ甫 REPLICATED 鍏抽敭瀛楃殑 CREATE TABLE 璇彞銆?
CREATE TABLE DB2INST2.SUMMARY_ZIP_CODE AS (SELECT * FROM DB2INST2.ZIP_CODE) DATA INITIALLY DEFERRED REFRESH IMMEDIATE ENABLE QUERY OPTIMIZATION REPLICATED;
瀹氫箟涓笉鍏佽鏈夎仛鍚堛俍IP_CODE 琛ㄥ湪 ZIP_CD 涓婃湁鍞竴鐨勭儲寮曘傝鎴戜滑濉厖璇ヨ〃錛屽湪鍏朵笂鍒涘緩绱㈠紩騫舵洿鏂扮粺璁′俊鎭細
REFRESH TABLE DB2INST2.SUMMARY_ZIP_CODE; CREATE INDEX AAA_TTT ON DB2INST2.SUMMARY_ZIP_CODE(ZIP_CD); RUNSTATS ON TABLE DB2INST2.SUMMARY_ZIP_CODE WITH DISTRIBUTION AND DETAILED INDEXES ALL;
鐜板湪錛屼紭鍖栧櫒鑷姩閫夋嫨浣跨敤澶嶅埗鐨勮〃錛岃繖鏍鳳紝姣忔榪愯鏌ヨ鏃訛紝涓嶅繀灝?ZIP_CODE 琛ㄥ箍鎾埌姣忎釜鑺傜偣銆?/p>
娓呭崟 5. 閫氳繃浣跨敤澶嶅埗鐨?ZIP_CODE 琛紝閬垮厤鏌愪簺璺ㄨ妭鐐瑰箍鎾?/a>
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: select c.*, z.zip, z.state_name, z.country_name from db2inst2.customer_address c join db2inst2.zip_code z on c.zip_cd = z.zip_cd Estimated Cost = 101171 Estimated Cardinality = 255819 Coordinator Subsection: Distribute Subsection #1 | Broadcast to Node List | | Nodes = 0, 1 Access Table Queue ID = q1 #Columns = 38 Return Data to Application | #Columns = 38 Subsection #1: Access Summary Table Name = DB2INST2.SUMMARY_ZIP_CODE ID = 2,47 | #Columns = 4 | Relation Scan | | Prefetch: Eligible | Lock Intents | | Table: Intent Share | | Row : Next Key Share | Insert Into Sorted Temp Table ID = t1 | | #Columns = 4 | | #Sort Key Columns = 1 | | | Key 1: ZIP_CD (Ascending) | | Sortheap Allocation Parameters: | | | #Rows = 8958 | | | Row Width = 36 | | Piped Sorted Temp Table Completion ID = t1 Access Temp Table ID = t1 | #Columns = 4 | Relation Scan | | Prefetch: Eligible Nested Loop Join | Access Table Name = DB2INST2.CUSTOMER_ADDRESS ID = 2,591 | | #Columns = 35 | | Index Scan: Name = DB2INST2.CU_ZIP_CD ID = 2 | | | Index Columns: | | | | 1: ZIP_CD (Ascending) | | | #Key Columns = 1 | | | | Start Key: Inclusive Value | | | | | 1: ? | | | | Stop Key: Inclusive Value | | | | | 1: ? | | | Data Prefetch: Eligible 162 | | | Index Prefetch: Eligible 162 | | Lock Intents | | | Table: Intent Share | | | Row : Next Key Share | | Insert Into Asynchronous Table Queue ID = q1 | | | Broadcast to Coordinator Node | | | Rows Can Overflow to Temporary Table Insert Into Asynchronous Table Queue Completion ID = q1 End of section
铏界劧鍦ㄦ垜浠殑紺轟緥涓紝浣跨敤澶嶅埗鐨?MQT 鐨勯璁℃垚鏈◢寰珮浜嗙偣錛?01171 vs. 100975錛夛紙鍥犱負鎴戜滑姝e湪鍙﹀涓縐嶇┖闂茬郴緇熶笂榪愯錛岃繖縐嶇郴緇熷皢涓や釜鍒嗗尯鏀懼悓涓鍙拌綆楁満涓娿傦級鐒惰岋紝褰撹妭鐐歸┗鐣欏湪涓嶅悓璁$畻鏈轟笂騫朵笖瀹冧滑涔嬮棿鐨勭綉緇滃緢蹇欐椂錛屽湪榪欑鎯呭喌涓嬩嬌鐢ㄥ鍒剁殑 MQT 鐨勬ц兘浼樼偣浼氬彉寰楁槑鏄俱?/p>
鎵浠ワ紝褰撴偍浠庝互涓嬭繖鏍風殑琛ㄤ腑澶嶅埗鏁版嵁鏃訛紝浣跨敤澶嶅埗鐨?MQT 浼氭湁鎬ц兘鏂歸潰鐨勪紭鍔匡細
- 鏄粡甯歌繛鎺ョ殑銆?
- 寰堝皯鏇存柊錛堝嵆浣挎浘緇忔洿鏂拌繃錛夈?
- 涓嶅お澶э紙铏界劧濡傛灉騫剁疆鐨勬ц兘浼樺娍鍙互鎶墊秷澶嶅埗鐨勪竴嬈℃ф垚鏈紝鎮ㄥ彲鑳戒細鑰冭檻澶嶅埗涓嶅お鏇存柊鐨勫ぇ琛ㄣ傦級
鍙﹀錛屽浜庡鍒剁殑 MQT錛屼笉浼氬彂鐢熼拡瀵?REFRESH IMMEDIATE 琛ㄦ墍鎻忚堪鐨勯攣瀹氶棶棰樸?
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
REFRESH IMMEDIATE vs. REFRESH DEFERRED
REFRESH IMMEDIATE MQT 浼氳薄绱㈠紩閭f牱褰卞搷鏌ヨ鐨勬ц兘銆傝繖浜涘獎鍝嶅寘鎷細
- 鍔犻熺浉鍏抽夋嫨錛坰elect錛夎鍙ョ殑鎬ц兘銆?
- 鍙鏈夋剰涔夛紝灝辯敱浼樺寲鍣ㄨ嚜鍔ㄩ夋嫨瀹冧滑銆?
- 浼氶檷浣庢彃鍏ワ紙insert錛夈佹洿鏂幫紙update錛夊拰鍒犻櫎錛坉elete錛夎鍙ョ殑鎬ц兘銆?
- 涓嶈兘鐩存帴鏇存柊銆?
- 鍙兘浼氬崰鐢ㄧ浉褰撳ぇ鐨勭鐩樼┖闂淬?
- 鍦ㄦ洿鏂板叾鍩鴻〃鏈熼棿錛屽彲鑳戒細淇濈暀浜掓枼閿併?
瑕佹煡鐪嬪鏇存柊鎬ц兘鐨勫獎鍝嶏紝璇峰弬闃?娓呭崟 6錛堜粛娌℃湁 MQT錛変腑鎵紺虹殑 INSERT 璇彞鐨?EXPLAIN 杈撳嚭銆?
娓呭崟 6. 瀵瑰熀鏈?ZIP_CODE 琛ㄦ墽琛岀殑 INSERT 鎿嶄綔
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: insert into db2inst2.zip_code(zip_cd, zip, state_cd, state_name, country_name) values (60606, '60606', 'IL', 'Illinois', 'United States') Estimated Cost = 25 Estimated Cardinality = 1 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛?
鐜板湪錛岃鎴戜滑娣誨姞鐢?REFRESH IMMEDIATE 閫夐」鍒涘緩鐨?MQT錛屽茍鏌ョ湅 娓呭崟 7 涓墍紺虹殑 EXPLAIN 杈撳嚭銆?
娓呭崟 7. 鐢?REFRESH IMMEDIATE 鍒涘緩鐨?MQT 涓婄殑 INSERT 浼氬鍔犳ц兘鎴愭湰
-------------------- SECTION --------------------------------------- Section = 1 SQL Statement: insert into db2inst2.zip_code(zip_cd, zip, state_cd, state_name, country_name) values (60606, '60606', 'IL', 'Illinois', 'United States') Estimated Cost = 50 Estimated Cardinality = 1 錛堣繖閲岀渷鐣ヤ簡涓浜涜錛?
鍦ㄨ繖涓壒孌婄ず渚嬩腑錛屽綋瀛樺湪 REFRESH IMMEDIATE MQT 鏃訛紝鎻掑叆璁板綍鐨勯璁℃垚鏈槸鍙屽嶇殑銆傚彟涓鏂歸潰錛孯EFRESH DEFERRED MQT 娌℃湁闄嶄綆鎻掑叆銆佹洿鏂板拰鍒犻櫎璇彞鐨勬ц兘銆?/p>
閫傚害浣跨敤 REFRESH IMMEDIATE MQT錛屼互浠呬粎浼樺寲棰戠箒榪愯涓斿綋鍓嶆暟鎹緢閲嶈鐨勬煡璇€備竴浜?MQT 涓嶉備簬绔嬪嵆鍒鋒柊鏉′歡銆傚彲浠ュ湪 SQL Reference涓壘鍒板噯紜殑瑙勫垯銆?
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
浼樺寲鍣ㄥ彲浠ユ牴鎹互涓嬫潯浠墮夌敤鐢?REFRESH IMMEDIATE 閫夐」鍒涘緩鐨?MQT 鏉ヤ唬鏇垮叾鍩鴻〃錛?/p>
- 鍩鴻〃銆丮QT 鍙婂叾绱㈠紩鐨勫綋鍓嶇粺璁′俊鎭?
- CURRENT QUERY OPTIMIZATION 璁劇疆鐨勫箋?
濡傛灉 CURRENT REFRESH AGE 璁劇疆閫夐」璁劇疆涓?ANY錛屽垯浼樺寲鍣ㄥ彲浠ヤ嬌鐢ㄧ敤 REFRESH DEFERRED 閫夐」鍒涘緩鐨?MQT銆傚湪 SQL Reference涓緇嗘弿榪頒簡 CURRENT QUERY OPTIMIZATION 鍜?CURRENT REFRESH AGE 璁劇疆閫夐」銆?
涓轟紭鍖栧櫒鎻愪緵 MQT銆佸垱寤洪傚綋鐨勭儲寮曞茍浣跨粺璁′俊鎭繚鎸佹渶鏂般傚茍璁╀紭鍖栧櫒閫夋嫨鏄嬌鐢ㄥ熀琛ㄨ繕鏄嬌鐢ㄦ葷粨琛ㄣ傚湪鏌愪簺鎯呭喌涓嬶紝浼樺寲鍣ㄥ皢閫夋嫨涓嶄嬌鐢?MQT銆?/p>
涓嶇 CURRENT REFRESH AGE 鍜?CURRENT QUERY OPTIMIZATION 璁劇疆閫夐」鐨勫兼槸浠涔堬紝鎮ㄩ兘鍙互鐩存帴鍦?SELECT 璇彞鐨?WHERE 瀛愬彞涓敤 REFRESH DEFERRED 鍜?REFRESH IMMEDIATE 鏉ユ寚瀹?MQT銆?/p>
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
姝e鎴戜滑鎵鐪嬪埌鐨勯偅鏍鳳紝濡傛灉姝g‘搴旂敤浜?MQT錛岄偅涔堝畠浠湪鍚勭鎯呭喌涓嬩細闈炲父鏈夌敤銆備笂闈㈢殑紺轟緥婕旂ず浜嗗浣曞簲鐢?MQT 鏉ユ敼榪涙煡璇㈡ц兘銆傝櫧鐒?MQT 浣跨敤璧鋒潵鍗佸垎鏂逛究錛屼絾闇瑕侀澶栫殑紓佺洏絀洪棿銆傜敤 REFRESH DEFERRED 閫夐」鍒涘緩鐨?MQT 涓嶄細褰卞搷瀵瑰熀琛ㄦ墽琛屾彃鍏ャ佹洿鏂板拰鍒犻櫎鐨勬ц兘錛岃岀敤 REFRESH IMMEDIATE 閫夐」鍒涘緩鐨?MQT 浼氬獎鍝嶃?
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
![]()
![]()
![]()
![]()
鍥為〉棣?/font>
![]()
![]()
![]()
Alexander Kuznetsov 鍦ㄨ蔣浠惰璁°佸紑鍙戝拰鏁版嵁搴撶鐞嗘柟闈㈠凡緇忔湁鍗佸洓騫寸殑緇忛獙銆傜洰鍓嶏紝浠栨鍦ㄨ璁?DB2 UDB EEE 涓 TB 綰х兢闆嗘暟鎹簱銆侫lexander 鏄?IBM 璁よ瘉鐨勯珮綰ф妧鏈笓瀹訛紙DB2 緹ら泦錛夊拰 IBM 璁よ瘉鐨勮В鍐蟲柟妗堜笓瀹訛紙鏁版嵁搴撶鐞嗗拰搴旂敤紼嬪簭寮鍙戯級銆傚彲浠ラ氳繃 comp.databases.ibm-db2 鏂伴椈緇勪笌浠栬仈緋匯?
]]>