db2 执行计划的问题,想做好sql优化的可以来探讨一下

[复制链接]
查看11 | 回复9 | 2009-7-22 09:30:00 | 显示全部楼层 |阅读模式
近期在研究db2 的访问计划,发现很多很奇怪的问题,百思不得其解,只能贴上来寻求帮助。
执行计划如下:

Connecting to the Database.
DB2 Universal Database Version 9.1, 5622-044 (c) Copyright IBM Corp. 1991, 2006
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool

******************** EXPLAIN INSTANCE ********************
DB2_VERSION:
09.01.6
SOURCE_NAME:
SQLC2F0A
SOURCE_SCHEMA:
NULLID
SOURCE_VERSION:

EXPLAIN_TIME:
2009-07-02-16.58.35.134789
EXPLAIN_REQUESTER:
DB2INST1
Database Context:
----------------

Parallelism:
None

CPU Speed:
3.030875e-07

Comm Speed:
100

Buffer Pool size:
1076000

Sort Heap size:
102400

Database Heap size:
100000

Lock List size:
50000

Maximum Lock List:
50

Average Applications:
1

Locks Available:
1600000
Package Context:
---------------

SQL Type:
Dynamic

Optimization Level:
5

Blocking:
Block All Cursors

Isolation Level:
Cursor Stability

---------------- STATEMENT 1SECTION 201 ----------------

QUERYNO:
8

QUERYTAG:
CLP


Statement Type:
Select

Updatable:
No

Deletable:
No

Query Degree:
1
Original Statement:
------------------
select a.IDNB, '1'
from DM_PRODUCTS a
where (a.FTPRATESAPPLICABLEFLAG = '1' and not exists
(select 1
from HISDB.HDM_3_PRODRESULTS b
where b.RUNNB=1 and a.ID = b.ID))

Optimized Statement:
-------------------
SELECT Q4.$C0 AS "IDNB", Q4.$C1
FROM
(SELECT Q3.$C0, '1'
FROM HISDB.HDM_3_PRODRESULTS AS Q1 RIGHT OUTER JOIN
(SELECT Q2.IDNB, Q2.ID, Q2.FTPRATESAPPLICABLEFLAG
FROM DB2INST1.DM_PRODUCTS AS Q2
WHERE (Q2.FTPRATESAPPLICABLEFLAG = '1')) AS Q3 ON (Q1.RUNNB = 1) AND
(Q3.$C1 = Q1.ID)) AS Q4
Access Plan:
-----------

Total Cost:
77125.7

Query Degree:
0

Rows

RETURN

( 1)

Cost

I/O

|

1.50953e+06

x^MSJOIN

( 2)

77125.7

10062.2
/----+----\
1.50956e+060.0193759
IXSCANFILTER
( 3)( 4)
76042.6 875.517
9951
111.2
|
|
1.50956e+0629249
INDEX: SYSTEM TBSCAN
IDX907020858350000( 5)
Q2
875.517

111.2

|

29249

SORT

( 6)

875.517

111.2

|

29249

IXSCAN

( 7)

859.86

111.2

|

731225

INDEX: SYSTEM

IDX907020858520000

Q1

Extended Diagnostic Information:
--------------------------------
Diagnostic Identifier:
1
Diagnostic Details:
EXP0022WIndex has no statistics.The index

"SYSTEM"."IDX907020858350000" has not had

runstats run on it.This can lead to poor

cardinality and predicate filtering estimates.
Diagnostic Identifier:
2
Diagnostic Details:
EXP0022WIndex has no statistics.The index

"SYSTEM"."IDX907020858520000" has not had

runstats run on it.This can lead to poor

cardinality and predicate filtering estimates.
Plan Details:
-------------


1) RETURN: (Return Result)

Cumulative Total Cost:
77125.7

Cumulative CPU Cost:
3.48232e+09

Cumulative I/O Cost:
10062.2

Cumulative Re-Total Cost:
77125.7

Cumulative Re-CPU Cost:
3.48232e+09

Cumulative Re-I/O Cost:
10062.2

Cumulative First Row Cost:
890.711

Estimated Bufferpool Buffers:
9966

Arguments:

---------

BLDLEVEL: (Build level)

DB2 v9.1.0.6 : s081007

HEAPUSE : (Maximum Statement Heap Usage)

304 Pages

STMTHEAP: (Statement heap size)

8192

Input Streams:

-------------

8) From Operator #2

Estimated number of rows:
1.50953e+06

Number of columns:
2

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q5.$C1+Q5.IDNB


2) MSJOIN: (Merge Scan Join)

Cumulative Total Cost:
77125.7

Cumulative CPU Cost:
3.48232e+09

Cumulative I/O Cost:
10062.2

Cumulative Re-Total Cost:
77125.7

Cumulative Re-CPU Cost:
3.48232e+09

Cumulative Re-I/O Cost:
10062.2

Cumulative First Row Cost:
890.711

Estimated Bufferpool Buffers:
9966

Arguments:

---------

EARLYOUT: (Early Out flag)

LEFT

INNERCOL: (Inner Order Columns)

1: Q1.ID(A)

OUTERCOL: (Outer Order columns)

1: Q3.ID(A)

OUTERJN : (Outer Join type)

LEFT (ANTI)

TEMPSIZE: (Temporary Table Page Size)

8192

Predicates:

----------

3) Predicate used in Join

Comparison Operator:
Equal (=)

Subquery Input Required:
No

Filter Factor:
6.62446e-07

Predicate Text:

--------------

(Q3.$C1 = Q1.ID)


Input Streams:

-------------

2) From Operator #3

Estimated number of rows:
1.50956e+06

Number of columns:
3

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q3.ID(A)+Q3.IDNB(A)+Q3.FTPRATESAPPLICABLEFLAG

7) From Operator #4

Estimated number of rows:
0.0193759

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID(A)


Output Streams:

--------------

8) To Operator #1

Estimated number of rows:
1.50953e+06

Number of columns:
2

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q5.$C1+Q5.IDNB


3) IXSCAN: (Index Scan)

Cumulative Total Cost:
76042.6

Cumulative CPU Cost:
2.68259e+09

Cumulative I/O Cost:
9951

Cumulative Re-Total Cost:
787.412

Cumulative Re-CPU Cost:
2.59797e+09

Cumulative Re-I/O Cost:
0

Cumulative First Row Cost:
15.1427

Estimated Bufferpool Buffers:
9952

Arguments:

---------

JN INPUT: (Join input leg)

OUTER

MAXPAGES: (Maximum pages for prefetch)

9950

PREFETCH: (Type of Prefetch)

NONE

ROWLOCK : (Row Lock intent)

NEXT KEY SHARE

SCANDIR : (Scan Direction)

FORWARD

TABLOCK : (Table Lock intent)

INTENT SHARE

TBISOLVL: (Table access Isolation Level)

CURSOR STABILITY

Predicates:

----------

4) Start Key Predicate

Comparison Operator:
Equal (=)

Subquery Input Required:
No

Filter Factor:
1

Predicate Text:

--------------

(Q2.FTPRATESAPPLICABLEFLAG = '1')

4) Stop Key Predicate

Comparison Operator:
Equal (=)

Subquery Input Required:
No

Filter Factor:
1

Predicate Text:

--------------

(Q2.FTPRATESAPPLICABLEFLAG = '1')


Input Streams:

-------------

1) From Object SYSTEM.IDX907020858350000

Estimated number of rows:
1.50956e+06

Number of columns:
4

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q2.ID(A)+Q2.IDNB(A)+Q2.$RID$

+Q2.FTPRATESAPPLICABLEFLAG


Output Streams:

--------------

2) To Operator #2

Estimated number of rows:
1.50956e+06

Number of columns:
3

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q3.ID(A)+Q3.IDNB(A)+Q3.FTPRATESAPPLICABLEFLAG


4) FILTER: (Filter)

Cumulative Total Cost:
875.517

Cumulative CPU Cost:
1.14968e+08

Cumulative I/O Cost:
111.2

Cumulative Re-Total Cost:
2.24879

Cumulative Re-CPU Cost:
7.41959e+06

Cumulative Re-I/O Cost:
0

Cumulative First Row Cost:
875.517

Estimated Bufferpool Buffers:
0

Arguments:

---------

JN INPUT: (Join input leg)

INNER

Predicates:

----------

3) Residual Predicate

Comparison Operator:
Equal (=)

Subquery Input Required:
No

Filter Factor:
6.62446e-07

Predicate Text:

--------------

(Q3.$C1 = Q1.ID)


Input Streams:

-------------

6) From Operator #5

Estimated number of rows:
29249

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID(A)


Output Streams:

--------------

7) To Operator #2

Estimated number of rows:
0.0193759

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID(A)


5) TBSCAN: (Table Scan)

Cumulative Total Cost:
875.517

Cumulative CPU Cost:
1.14968e+08

Cumulative I/O Cost:
111.2

Cumulative Re-Total Cost:
2.24879

Cumulative Re-CPU Cost:
7.41959e+06

Cumulative Re-I/O Cost:
0

Cumulative First Row Cost:
875.517

Estimated Bufferpool Buffers:
0

Arguments:

---------

MAXPAGES: (Maximum pages for prefetch)

ALL

PREFETCH: (Type of Prefetch)

NONE

SCANDIR : (Scan Direction)

FORWARD

Input Streams:

-------------

5) From Operator #6

Estimated number of rows:
29249

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID(A)


Output Streams:

--------------

6) To Operator #4

Estimated number of rows:
29249

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID(A)


6) SORT: (Sort)

Cumulative Total Cost:
875.517

Cumulative CPU Cost:
1.14967e+08

Cumulative I/O Cost:
111.2

Cumulative Re-Total Cost:
0.0320687

Cumulative Re-CPU Cost:
105807

Cumulative Re-I/O Cost:
0

Cumulative First Row Cost:
875.517

Estimated Bufferpool Buffers:
112.2

Arguments:

---------

DUPLWARN: (Duplicates Warning flag)

FALSE

NUMROWS : (Estimated number of rows)

29249

ROWWIDTH: (Estimated width of rows)

80

SORTKEY : (Sort Key column)

1: Q1.ID(A)

TEMPSIZE: (Temporary Table Page Size)

8192

UNIQUE: (Uniqueness required flag)

FALSE

Input Streams:

-------------

4) From Operator #7

Estimated number of rows:
29249

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID


Output Streams:

--------------

5) To Operator #5

Estimated number of rows:
29249

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID(A)


7) IXSCAN: (Index Scan)

Cumulative Total Cost:
859.86

Cumulative CPU Cost:
6.33086e+07

Cumulative I/O Cost:
111.2

Cumulative Re-Total Cost:
0.0320687

Cumulative Re-CPU Cost:
105807

Cumulative Re-I/O Cost:
0

Cumulative First Row Cost:
15.1287

Estimated Bufferpool Buffers:
112.2

Arguments:

---------

BLKLOCK : (Block Lock intent)

INTENT SHARE

DPESTFLG: (Number of data partitions accessed are Estimated)

FALSE

DPLSTPRT: (List of data partitions accessed)

1

DPNUMPRT: (Number of data partitions accessed)

1

GLOBLOCK: (Global Lock intent)

INTENT SHARE

MAXPAGES: (Maximum pages for prefetch)

110

PREFETCH: (Type of Prefetch)

NONE

ROWLOCK : (Row Lock intent)

NEXT KEY SHARE

SCANDIR : (Scan Direction)

FORWARD

TABLOCK : (Table Lock intent)

INTENT SHARE

TBISOLVL: (Table access Isolation Level)

CURSOR STABILITY

Predicates:

----------

2) Start Key Predicate

Comparison Operator:
Equal (=)

Subquery Input Required:
No

Filter Factor:
0.04

Predicate Text:

--------------

(Q1.RUNNB = 1)

2) Stop Key Predicate

Comparison Operator:
Equal (=)

Subquery Input Required:
No

Filter Factor:
0.04

Predicate Text:

--------------

(Q1.RUNNB = 1)


DP Elim Predicates:

------------------

Range 1)

Start Predicate: (Q1.RUNNB = 1)

StopPredicate: (Q1.RUNNB = 1)

Input Streams:

-------------

3) From Object SYSTEM.IDX907020858520000

Estimated number of rows:
731225

Number of columns:
3

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.$RID$+Q1.ID+Q1.RUNNB


Output Streams:

--------------

4) To Operator #6

Estimated number of rows:
29249

Number of columns:
1

Subquery predicate ID:
Not Applicable

Column Names:

------------

+Q1.ID

Objects Used in Access Plan:
---------------------------

Schema: DB2INST1

Name:
DM_PRODUCTS

Type:
Table (reference only)

Schema: HISDB

Name:
HDM_3_PRODRESULTS

Type:
Table (reference only)

Schema: SYSTEM

Name:
IDX907020858350000

Type:
Index

Time of creation:
2009-07-02-16.58.35.137266

Last statistics update:

Number of columns:
3

Number of rows:
1509556

Width of rows:
-1

Number of buffer pool pages:
625314

Distinct row values:
No

Tablespace name:
AIDBIDX8K

Tablespace overhead:
7.500000

Tablespace transfer rate:
0.060000

Source for statistics:
Single Node

Prefetch page count:
48

Container extent page count:
16

Index clustering statistic:
20.000000

Index leaf pages:
9950

Index tree levels:
3

Index full key cardinality:
1509556

Index first key cardinality:
1

Index first 2 keys cardinality: 0

Index first 3 keys cardinality: 1509556

Index first 4 keys cardinality: 0

Index sequential pages:
-1

Index page density:
-1

Index avg sequential pages:
-9

Index avg gap between sequences:-9

Index avg random pages:
-9

Fetch avg sequential pages:
-9

Fetch avg gap between sequences:-9

Fetch avg random pages:
-9

Index RID count:
0

Index deleted RID count:
0

Index empty leaf pages:
0

Schema: SYSTEM

Name:
IDX907020858520000

Type:
Index

Time of creation:
2009-07-02-16.58.35.138882

Last statistics update:

Number of columns:
2

Number of rows:
731225

Width of rows:
-1

Number of buffer pool pages:
226432

Distinct row values:
No

Tablespace name:


Tablespace overhead:
7.500000

Tablespace transfer rate:
0.060000

Source for statistics:
Single Node

Prefetch page count:
48

Container extent page count:
16

Index clustering statistic:
20.000000

Index leaf pages:
2755

Index tree levels:
3

Index full key cardinality:
146245

Index first key cardinality:
73122

Index first 2 keys cardinality: 146245

Index first 3 keys cardinality: 0

Index first 4 keys cardinality: 0

Index sequential pages:
-1

Index page density:
-1

Index avg sequential pages:
-9

Index avg gap between sequences:-9

Index avg random pages:
-9

Fetch avg sequential pages:
-9

Fetch avg gap between sequences:-9

Fetch avg random pages:
-9

Index RID count:
0

Index deleted RID count:
0

Index empty leaf pages:
0

看不清的可以下载附件。
问题如下:
首先我发现db2 rewrite 的sql好像与original sql不是等价的。
A not exists B 等价于 B right out join A 吗???
另外,访问计划中用了两个索引,
IDX907020858350000 和 IDX907020858520000 schema 均是 SYSTEM。
我惊奇的发现这两索引在系统表里找不到,而且我们也从来没有创建者两个索引。
难道db2 会自己创建临时索引?太神奇了吧。。。。
望哪位大侠能给我解答一下,非常感谢。



expln.rar(3.24 KB, 下载次数: 11)2009-7-2 17:24 上传点击文件名下载附件

回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
不好意思,,,
第二个问题是自己照成的。
explain mode 设成了 RECOMMEND INDEXES。
不过第一个问题还是没想通
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
plz collect full information
http://www-01.ibm.com/support/do ... s=utf-8&lang=en
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
for your fast answer, the technique to rewrite NOT EXIST into outer join is called ANTI-JOIN, which is described in the patent 5963933
http://www.patentstorm.us/patents/5963933/description.html
2) MSJOIN: (Merge Scan Join)

Cumulative Total Cost:
77125.7

Cumulative CPU Cost:
3.48232e+09

Cumulative I/O Cost:
10062.2

Cumulative Re-Total Cost: 77125.7

Cumulative Re-CPU Cost: 3.48232e+09

Cumulative Re-I/O Cost: 10062.2

Cumulative First Row Cost: 890.711

Estimated Bufferpool Buffers: 9966

Arguments:

---------

EARLYOUT: (Early Out flag)

LEFT

INNERCOL: (Inner Order Columns)

1: Q1.ID(A)

OUTERCOL: (Outer Order columns)

1: Q3.ID(A)

OUTERJN : (Outer Join type)

LEFT (ANTI)

TEMPSIZE: (Temporary Table Page Size)

8192
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
原帖由 wangzhonnew 于 2009-7-3 01:41 发表
plz collect full information
http://www-01.ibm.com/support/docview.wss?rs=71&context=SSEPGG&q1=performance+export&uid=swg21106550&loc=en_US&cs=utf-8&lang=en

plz指什么?
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
plz=please....
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
我觉得不能直接去理解两者为sQL语义等价。因为如果从语义分析,Q3作为outer则无论ON什么条件其所有行得起保留。也就是说选择Q4时是把整个Q3符合条件的都选出来了。这与原来的SQL却是不一样。
因此optimizor用$C0这些符号去替代实际column名字,而其他的column仍保持原来的名字一定有其用意。我猜DB2内部处理时对$变量与column变量是不同的。比如加入了filer null值等。DB2这样表达,只是优化过的SQL的表现形式而已。
欢迎指正。
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
非常感谢各位的回答,
不过答案应该如wangzhonnew所讲的有了一个anti的缘故。
仔细看了一下wangzhonnew的链接,虽然有些不知道写的什么,但看懂了anti Join的含义。
顺便还知道了earlyout :)。
另外还有些问题,就一并提了吧:
1、filter,原来一直不理解filter的真实含义,现在看来是不是因为下一步的early out的缘故,match 到first row就可以filter掉了,
但我感觉filter不应该是单独一步,应该包含在msjoin里面才对啊。
2、index本身是排序的,为何有的执行计划里,做了ixscan后仍然要做sort。
3、list prefetch应该是效率比较高的,但是为何有时db2并不做list prefetch,只是一边ixscan一边逐条到table里fetch。

4、$C0和$C1我猜应该是column0 ,column1 的意思。不过在上次看到的帖子(wangzhonnew的案例)里,好像又不是:
Original Statement:
------------------
DELETE
FROM CTWEBTRACK
WHERE CTWEBTRACK_ID IN
(SELECT CTWEBTRACK_ID
FROM ctwebtrack
WHERE timecreated = $C0) AND
Q4.CTWEBTRACK_ID = ANY
(SELECT DISTINCT Q2.CTWEBTRACK_ID, $C0, $C1
FROM DB2RTZ1.CTWEBTRACK AS Q2
WHERE (Q2.TIMECREATED < -(CURRENT TIMESTAMP, :?, 3))
ORDER BY Q2.CTWEBTRACK_ID))

这里的$C0,$C1是什么意思?
5,问一个不相干的问题,如果有多个临时表空间(page size一样的), 当sortheap不够用时,会用到哪个临时表空间?
问题是在太多,先问到这里吧,感谢各位。
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
1) filter is just an operation to apply predicate only:

Predicates:

----------

3) Residual Predicate

Comparison Operator:
Equal (=)

Subquery Input Required: No

Filter Factor:
6.62446e-07

Predicate Text:

--------------

(Q3.$C1 = Q1.ID)
Say from the TBSCAN(5) it came out 3 rows (1) (2) (3), and the outer leg gives (2), then filter operation will remove (1) (3) from the set and only send (2) into MSJN(2)
2)
From IXSCAN(7) we have:

Predicates:

----------

2) Start Key Predicate

Comparison Operator:
Equal (=)

Subquery Input Required: No

Filter Factor:
0.04

Predicate Text:

--------------

(Q1.RUNNB = 1)

2) Stop Key Predicate

Comparison Operator:
Equal (=)

Subquery Input Required: No

Filter Factor:
0.04

Predicate Text:

--------------

(Q1.RUNNB = 1)
This means the leading column is RUNNB.
From SORT(6) we have:

SORTKEY : (Sort Key column)

1: Q1.ID(A)
That means it need to be sorted based on Q1.ID, acs order...
3) For

29249

IXSCAN

( 7)

859.86

111.2

|

731225

INDEX: SYSTEM

IDX907020858520000

Q1
It doesn't do list prefetching because the output rows is 29249 and total number of rows in the PK is 731225, it will spend too much IO to do full list prefetch..
For IXSCAN(3), it can also not do prefetch because MSJOIN need a sorted result set, since it only need 3 rows, it will cost too much if doing full tablescan (then it need to read all rows from each record) and doing sort.
4) yes it is column 0 and column 1, from the input stream
SELECT Q4.$C0 AS "IDNB", Q4.$C1
FROM
(SELECT Q3.$C0, '1'
FROM HISDB.HDM_3_PRODRESULTS AS Q1 RIGHT OUTER JOIN
(SELECT Q2.IDNB, Q2.ID, Q2.FTPRATESAPPLICABLEFLAG
FROM DB2INST1.DM_PRODUCTS AS Q2
WHERE (Q2.FTPRATESAPPLICABLEFLAG = '1')) AS Q3 ON (Q1.RUNNB = 1) AND
(Q3.$C1 = Q1.ID)) AS Q4
5) round robin
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
既然有高手在,自然不能轻易放过学习的机会 :)
对于问题1、3我还是有些疑问,还望不吝赐教。。。
1)我理解了filter是在为了减少msjoin的结果集而执行的步骤。但是我对具体细节还是有疑问,
从执行计划
3)Residual Predicate

Comparison Operator:
Equal (=)

Subquery Input Required: No

Filter Factor:
6.62446e-07

Predicate Text:

--------------

(Q3.$C1 = Q1.ID)
这段来看,apply的 predicate 是 Q3.$C1 = Q1.ID,但是Q3.$c1并非一个固定的值。db2是如何filter的呢?难道到Q3里面
搜索一遍,不存在的就filter掉,这样代价也太大了吧(Q3有100多万条记录呢)。我想肯定不是这样,是不是跟什么outer leg 有关(我不明白这是什么东东)。
具体如何实现的还请wangzhonnew兄指教。
另外
29249
TBSCAN
( 5)
875.517
111.2
这一段我觉得完全没必要,是不是要filter才必须这么做的。

2)我理解 list prefetch 并不是要prefetch full table。应该是做ixscan后形成一个按rid排好序的page list,然后ioserver根据
这个list做prefech,有别于正常的sequence prefech。
如下例:
5000
FETCH
( 8)
9761.42
2220.03

/---+---\
11487.14.16672e+07
RIDSCN TABLE: DB2RTZ1
( 9) CTWEBTRACK
455.613
110.561
|
11487.1
SORT
(10)
455.612
110.561
|
11487.1
IXSCAN
(11)
435.54
110.561
|
4.16672e+07
INDEX: DB2RTZ1
I_CTWEBTRACK001
我的问题是为db2何有时做list prefetch,有时仅仅是ixscan + table fetch(如下图)。
5000
FETCH
( 6)
9812.51
485.035

/---+---\
11487.14.16672e+07
IXSCAN TABLE: DB2RTZ1
( 7) CTWEBTRACK
435.54
110.561
|
4.16672e+07
INDEX: DB2RTZ1
I_CTWEBTRACK001

再次感谢wangzhonnew兄的精彩回答。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行