请高手评价该语句的性能

[复制链接]
查看11 | 回复7 | 2009-10-9 08:28:00 | 显示全部楼层 |阅读模式
SQL> select * from
2(select rownum as nm,zzz.* from
3(
4select Distinct SLZ_CFZ.CFZ_ID,SLZ_CFZ.LRRQ,SLZ_CFZ.SQR as itemi1,SLZ_CFZ.C
FZ_CD as itemi2,a2.NAME as itemi3,a3.NAME as itemi4,SLZ_CFZ.CFZYSH as itemi5,SLZ
_CFZ.SJSBH as itemi6,SLZ_CFZ.XDM as itemi7,SLZ_CFZ.XIAOBAN as itemi8,SLZ_CFZ.DON
GZHI as itemi9,SLZ_CFZ.NANZHI as itemi10,SLZ_CFZ.XIZHI as itemi11,SLZ_CFZ.BEIZHI
as itemi12,a12.NAME as itemi13,a13.NAME as itemi14,a14.NAME as itemi15,SLZ_CFZ.
LINQZH_ID as itemi16,a16.NAME as itemi17,a17.NAME as itemi18,SLZ_CFZ.CFQD as ite
mi19,SLZ_CFZ.ZHUSHU as itemi20,SLZ_CFZ.XVJI as itemi21,SLZ_CFZ.SPCXJ as itemi22,
SLZ_CFZ.CCLXJ as itemi23,SLZ_CFZ.ZYCXJ as itemi24,SLZ_CFZ.SCXJ as itemi25,SLZ_CF
Z.QSRQ as itemi26,SLZ_CFZ.ZZRQ as itemi27,SLZ_CFZ.GXQX as itemi28,SLZ_CFZ.GXMJ a
s itemi29,SLZ_CFZ.GXZS as itemi30,SLZ_CFZ.MIANJI as itemi31,SLZ_CFZ.CFCJ as item
i32
5from SLZ_CFZ,SCD_BXDW a2,SCD_MCSCJH a3,SCD_LFQY a12,SCD_LINZHONG a13,SCD_QU
ANSHU a14,SCD_CFLX a16,SCD_CFFS a17,SCD_DIQV dq
6 WHERESLZ_CFZ.CFZ_ID = SLZ_CFZ.CFZ_ID AND a2.CODE=SLZ_CFZ.SQDW AND a3.COD
E=SLZ_CFZ.CFDD AND a12.CODE=SLZ_CFZ.LFQY AND a13.CODE=SLZ_CFZ.LINZHONG AND
a14.CODE=SLZ_CFZ.QUANSHU AND a16.CODE=SLZ_CFZ.CFLX AND a17.CODE=SLZ_CFZ.CFF
S and SLZ_CFZ.LRRQ>='2006-04-04' and SLZ_CFZ.LRRQ0;
已选择15行。
Execution Plan
----------------------------------------------------------
0SELECT STATEMENT Optimizer=CHOOSE
10 VIEW
21 COUNT
32 VIEW
43 SORT (UNIQUE)
54 TABLE ACCESS (BY INDEX ROWID) OF 'SCD_CFLX'
65
NESTED LOOPS
76
NESTED LOOPS
87
NESTED LOOPS
98
NESTED LOOPS
109
NESTED LOOPS
11 10
NESTED LOOPS
12 11
NESTED LOOPS
13 12
NESTED LOOPS
14 13
TABLE ACCESS (BY INDEX ROWID) OF
'SLZ_CFZ'
15 14
INDEX (RANGE SCAN) OF 'SLZ_CFZ_LRRQ_SELECT' (NON-UNIQUE)
16 13
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_DIQV'
17 16
INDEX (UNIQUE SCAN) OF 'SCD_DIQV_I_ID' (UNIQUE)
18 12
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_CFFS'
19 18
INDEX (UNIQUE SCAN) OF 'SCD_CFFS_I_CODE' (UNIQUE)
20 11
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_QUANSHU'
21 20
INDEX (UNIQUE SCAN) OF 'SCD_QUANSHU_I_CODE' (UNIQUE)
22 10
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_LINZHONG'
23 22
INDEX (UNIQUE SCAN) OF 'SCD_LINZHONG_I_CODE' (UNIQUE)
249
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_LFQY'
25 24
INDEX (UNIQUE SCAN) OF 'SCD_LFQY_I_CODE' (UNIQUE)
268
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_MCSCJH'
27 26
INDEX (UNIQUE SCAN) OF 'PK_SCD_MCSCJH' (UNIQUE)
287
TABLE ACCESS (BY INDEX ROWID) OF 'SCD_BXDW'
29 28
INDEX (UNIQUE SCAN) OF 'PK_SCD_BXDW' (UNIQUE)
306
INDEX (RANGE SCAN) OF 'SCD_CFLX_I_CODE' (NON-UNIQUE)


Statistics
----------------------------------------------------------

0recursive calls

0db block gets
15705consistent gets

0physical reads

0redo size
3582bytes sent via SQL*Net to client
503bytes received via SQL*Net from client

2SQL*Net roundtrips to/from client

1sorts (memory)

0sorts (disk)
15rows processed
SQL>
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
该应用程序中存在大量的这种多表连接的语句,每次我做statspack时也都出现大批这样的语句,索引我觉得再没法改进了,这种sql语句还有改进的余地吗?谢谢
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
/*+use_hash(a,b***)*/
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
最初由 caoliwei 发布
[B]/*+use_hash(a,b***)*/ [/B]

谢谢,caoliwei ,请问能详细一点吗?
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
需要根据各个表的统计信息,如记录数之类的来确定
有时候并不是用了索引就会速度快的,反而更慢也可能。
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
对了,可以使用一些SQL自动优化工具
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
介个绝对要具体问题具体分析的。
每个表的数据量如何?分析过没有?数据库版本?
如果是9i下,oracle都会倾向与用hash连接的。
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
最初由 hanson 发布
[B]介个绝对要具体问题具体分析的。
每个表的数据量如何?分析过没有?数据库版本?
如果是9i下,oracle都会倾向与用hash连接的。 [/B]

谢谢,oarcle9i,windows2000
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行