[原创]物化查询表,查询重写
上一篇 / 下一篇 2008-08-22 14:58:52 / 个人分类:db2
8X|aZ$i0D5zT0前几天看到有人问怎么看查询重写!当时有点忙,今天抽时间写一个脚本
一:首先,创建物化查询表
1G-]9m+@V2|0C:\>db2 connect to churndb user testITPUB个人空间)nIS5N
bH q
输入 test 的当前密码:
数据库连接信息
数据库服务器 = DB2/NT 8.2.0
!V?(|`1YV"rT0 SQL 授权标识 = TEST
c,nm!M \0 本地数据库别名 = CHURNDB
"BgJ9pqa&[0C:\>db2 drop table churn_materialized
)D3V2Pbqw'@0DB20000I SQL 命令成功完成。
C:\>db2 create table churn_materialized as( \ITPUB个人空间0`.R~%b9b4z,M*e
db2 (cont.) => select CUST_ID,ACC_NBR, CUST_AGE, CUST_SEX, REGION_COD \ITPUB个人空间g e|1MDBl M
db2 (cont.) => , PROD_TYPE, USER_TYPE, LEAVE_DATE, NOW_TALK_S, NOW_USE_S, STITPUB个人空间.aE,tNZST1SV|
RAT_G, NOW_REAL_S, \ITPUB个人空间+B
~Vy X;bry6x
db2 (cont.) => LOAD_TIME, NEXT_M1_REAL_S, AREA_CODE \
:A$c)h3_4ve&m!Y0db2 (cont.) => from TEST.CUST_CHURN_INFO_200710 where now_talk_s = '正常' \
:Wl'ez-P&a0db2 (cont.) => ) data initially deferred refresh immediate
6p w+JMLK0DB20000I SQL 命令成功完成。
C:\>db2 refresh table churn_materializedITPUB个人空间H*S!lW
{M
DB20000I SQL 命令成功完成。
C:\>db2 runstats on table test.churn_materialized
{(Uf*VL-X]
fL+l,O0DB20000I RUNSTATS 命令成功完成。
$N`kd4ka4`"Q*|,o0二:ss.sql 如下:
:jN~ewkn@v%?0select CUST_ID,ACC_NBR, CUST_AGE, CUST_SEX from TEST.CUST_CHURN_INFO_200710 where now_talk_s = '正常';
三:因为sql查询的是TEST.CUST_CHURN_INFO_200710,如果系统能够走查询重写的话,
,q2V/d9Ul+J2q/J0那么查询结果应该是走test.churn_materialized,且先得到执行计划ITPUB个人空间,a u[1EiA.H-N
C:\>db2 set current explain mode explain
7pEfx
yxh7s0DB20000I SQL 命令成功完成。
C:\>db2 -tvf c:\ss.sqlITPUB个人空间Fc0D1\u9v S/[%]d
select CUST_ID,ACC_NBR, CUST_AGE from TEST.CUST_CHURN_INFO_200710 where now_talk
'C9CeD|W0_s = '正常'
J5h"Zb#Y$jb0SQL0217W 未执行该语句,因为仅在处理 Explain 信息请求。 SQLSTATE=01604
-V"{*V
`:f,`E0C:\>db2 set current explain mode noITPUB个人空间d!X8N1np K
im
DB20000I SQL 命令成功完成。
C:\>Db2exfmt -d churndb -g TIC -w -1 -n % -s % -# 0 -o c:\ZXT1.TXT
+V-f6f2W*~A"tA&ub0DB2 Universal Database Version 8.1, 5622-044 (c) Copyright IBM Corp. 1991, 2002
/V)V1j hWTg0Licensed Material - Program Property of IBMITPUB个人空间j+zu2b4R_
IBM DATABASE 2 Explain Table Format Tool
Connecting to the Database.ITPUB个人空间b,@|E&n"_5cD
Connect to Database Successful.ITPUB个人空间5pllrbZ.p
Using only explain schema found: TEST .
%~Z0r4|~/a4A hm0Output is in c:\ZXT1.TXT.ITPUB个人空间\ f v)xh+`1f
Executing Connect Reset -- Connect Reset was Successful.
C:\>db2 alter table test.churn_materialized drop materialized query
;U[P"\g4T^q#U0DB20000I SQL 命令成功完成。
C:\>db2 drop table churn_materialized
E;~OQjaNC0DB20000I SQL 命令成功完成。
四:看执行计划
DB2 Universal Database Version 8.1, 5622-044 (c) Copyright IBM Corp. 1991, 2002
S@{|3T2aG;z0s0Licensed Material - Program Property of IBM
w'U9~7[ H
Q;HR0IBM DATABASE 2 Explain Table Format Tool
******************** EXPLAIN INSTANCE ********************
DB2_VERSION: 08.02.0
0d hzF+e_)q0SOURCE_NAME: SQLC2E06ITPUB个人空间J KwIYX-@R
SOURCE_SCHEMA: NULLID