通过 DB2 TPC-C 基准实现探索 SQL
2008-09-17 16:31:49 来源:WEB开发网清单 2. 使用过渡表
1
SELECT D_TAX, D_NEXT_O_ID
2
INTO :dist_tax , :next_o_id
3
FROM OLD TABLE (
UPDATE DISTRICT
4
SET D_NEXT_O_ID = D_NEXT_O_ID + 1
5
WHERE D_W_ID = :w_id
6
AND D_ID = :d_id
7 )
AS OT
通过查看 清单 3 中所示的优化器计划,可以很容易看出这种逻辑的优点:
清单 3. 使用过渡表的访问计划
Rows
RETURN
( 1)
Cost
I/O
|
1
UPDATE
( 2)
25.7261
2
/---+--
1 26
FETCH TABLE: SRIELAU
( 3) DISTRICT
12.872
1
/----+---
1 26
IXSCAN TABLE: SRIELAU
( 4) DISTRICT
0.0175755
0
|
26
INDEX: SYSIBM
SQL0410231029415
这个组合的计划在结构上与单独的 UPDATE 语句几乎一样。TPC-C 规范将下一个订单 id 的存储放在 DISTRICT 表中。在客户环境中,可以很容易地转而使用一个 SEQUENCE 事务,以避免锁在一起。
更多精彩
赞助商链接