下面我们继续在窗口 1 中创建相应的工作动作集以及工作动作。发出 CREATE WORK ACTION SET 命令,创建工作动作集 MYWORKACTION,并创建面向工作类 smallQuery 的工作动作 smallQueryAction ,面向工作类 mediumQuery 的工作动作 mediumQueryAction,面向工作类 largeQuery 的工作动作 largeQueryAction,具体如清单 28 所示: : B8 R! Y6 M5 Q
( a$ a 清单 28 . 在窗口 1 中创建工作动作集 6 K6 z- G v, k. M+ M; R, G. N' @
^2 Y
C:\> DB2 - tvf crtWorkActionSet.sql 3 S0 k f8 ~: G4 t
8 G1 t) w7 U; } e! c }' s
alter work action set MYWORKACTION - }' h' {$ H) }& P- f5 ?4 C
0 ?! ~- O l# W. X
alter smallQueryAction disable # L ?! @, H6 c6 q9 s
alter mediumQueryAction disable
alter largeQueryAction disable 0 p. g) U% x% n
8 ^9 S" c9 S' c. L0 v! O: X& |
DB20000I SQL命令成功完成。
drop work action set MYWORKACTION
DB20000I SQL命令成功完成。
3 L# R% Q3 h! l* s+ ?4 z7 a1 ~
create work action set MYWORKACTION for database using work class set MYQUERY
( work action smallQueryAction on work class smallQuery
count activity, $ S8 E! V8 I2 \/ W8 d7 G/ \" \
work action mediumQueryAction on work class mediumQuery , L3 t+ J& n& l) f; f$ g
collect activity data with details and values , 3 T5 u; Q3 s r5 }3 Q; L
5 o7 G! k6 u% }: v/ l
work action largeQueryAction on work class largeQuery
when concurrentdbcoordactivities > 1 and queuedactivities > 1 stop execution )
{$ R0 C) i: G# o1 k! d
DB20000I SQL命令成功完成。 0 O* q* q# a$ x# |3 \. j. e$ i
. J( `* S1 ^4 Y0 F H
命令成功完成。这样我们就创建了 1 个工作动作集和 3 个工作动作。 4 Z$ |7 r" j/ i6 ~0 j: J2 d& C
工作动作集 MYWORKACTION 对应的工作类集 MYQUERY。工作动作 smallQueryAction 对应的工作类是 smallQuery,且指定了 count activity 选项,含义是指定工作类 smallQuery 所对应的数据库活动,只要其任何一个在运行,则这个工作类的计数器就会累积增长。 , v2 ^* c& _1 r& S* j; P% |
. \$ \% ]4 w" i% [: T: C* \
工作动作 mediumQueryAction 对应的工作类是 mediumQuery,且指定了 collect activity data with details and values 选项,collect activity data 的含义是当工作类 mediumQuery 相关的每一个活动完成后,都将其数据发送给相关合适的事件监控器;with details 的含义是当相关的活动完成后,还要把相关的语句和编译环境发送给相关的时间监控器;and values 的含义是那些活动相关的输入数据值也发送给相关的事件监控器。
Z; h$ ~$ m
工作动作 largeQueryAction 对应的工作类是 largeQuery,且指定了 when concurrentdbcoordactivities > 1 and queuedactivities > 1 stop execution 选项,含义是当并发的数据库协调器活动( database coordinator activities )大于 1 时,数据库管理器将对活动进行排队,对后来的数据库协调器活动(比如一个查询)放入排队队列。并且当排队的活动也大于1时,数据库活动将不允许执行。
M# ?) d9 {
下面我们继续在窗口 2 中用 RHETTE 用户连接示例数据库 DB2TEST1,并执行两个查询,在窗口 3 中用 RHETTE 用户连接示例数据库 DB2TEST1 ,也执行两个相同的查询,然后在窗口 2 中通过调用表函数 WLM_GET_WORK_ACTION_SET_STATS ,查看工作动作集的状态,具体如清单 29 所示: " y9 T8 U( e) a/ ?- W
: f" k' k z+ u& L! u3 a
清单 29. 在窗口 2 中执行两个查询 : X6 [+ }, |7 i9 g( P3 o4 ?
A% D3 d
C:\> db2 connect to db2test1 user rhette using passw0rd - c& Y1 I' l( r
/ h- J$ `% W) @: `, q, u
数据库连接信息
数据库服务器 = DB2 / NT 9.5.0 * N3 _1 z: ]- n. g0 S( R
SQL 授权标识 = RHETTE
本地数据库别名 = DB2TEST1
' _( u/ G# }& @. G# g/ q- u
; N6 u8 D7 C# |) r
5 r' n8 V; }9 \! Q" e3 u2 E7 w1 o
C:\> db2 select count ( * ) from project , project , project
8000
1 条记录已选择。
k! C6 y0 w5 G7 z# S9 }; `+ M! n. l: @
3 Q8 g, ~- P- c9 X( H4 v8 R7 V
/ j) O" i/ J4 U( R. ~# ?: H5 c
C:\> db2 select count ( * ) from project , project , project , project , project
K6 l# j8 Y
2 |$ N- }3 A7 r1 z% [! h- d
3200000 ' R* D" `" |) f0 }3 ]+ H
1 条记录已选择。
清单 30. 在窗口 3 中执行两个查询
# L3 t! I
C:\> db2 connect to db2test1 user rhette using passw0rd
M& R3 D/ _4 p9 _
数据库连接信息 + T' p/ B7 f1 ?1 w* Q. G1 a/ ]
4 U4 B: ?" d, l1 O4 d0 f
数据库服务器 = DB2 / NT 9.5.0
SQL 授权标识 = RHETTE % _4 Q. ?1 J2 x2 b: u/ q
9 U# z; p) G/ V3 ^* C5 K
本地数据库别名 = DB2TEST1 6 N, ~+ Y/ J" V; D) m
- k$ y# {& g8 L a$ f) ^
y
C:\> db2 select count ( * ) from project , project , project
M( e7 w! Y
1 3 T, w) Y3 B! I
- R7 |; d3 G( [3 V' q& \7 t7 x
H' y0 Q
7 {- }: E7 m" C7 U
8000 ( d# u2 E7 x7 ^. Q( o" _* `6 M9 E
) F4 c _( L1 o; k* i$ h
1 条记录已选择。 2 K$ ?* P" f4 \ ' D4 L1 ? s9 Q2 I
C:\> db2 select count ( * ) from project , project , project , project , project , project
- O( V* z" l H0 z9 e
64000000
1 条记录已选择。 ' x& M U. H, [: P$ P- ]0 D6 U
收起