|
| |
精品推荐 |
 |
|
| |
|
|
|
|
通过分析SQL语句的执行计划优化SQL(四)
|
日期:2008年5月19日 作者: 查看:[大字体
中字体 小字体]
|
2 INDEX (RANGE SCAN) OF 'SWORD.IDX_DETAIL_CN' (NON-UNIQUE) (COST=3,CARD=54863946,BYTES=)
这个查询耗费的时间很长,需要1个多小时。 运行后的信息如下: COUNT(A.CHANNELB.USER_CLASS) ------------------------------ 1186387
Elapsed: 01:107:6429.87
Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=108968 Card=1 Bytes=21) 1 0 SORT (AGGREGATE) 2 1 NESTED LOOPS (Cost=108968 Card=1213745 Bytes=25488645) 3 2 TABLE ACCESS (FULL) OF 'SUPER_USER' (Cost=2 Card=2794Bytes=27940) 4 2 TABLE ACCESS (BY INDEX ROWID) OF 'SWD_BILLDETAIL' (Cost=39 Card=54863946 Bytes=603503406) 5 4 INDEX (RANGE SCAN) OF 'IDX_DETAIL_CN' (NON-UNIQUE) (Cost=3 Card=54863946)
Statistics ---------------------------------------------------------- 0 recursive calls 4 db block gets 1196954 consistent gets 1165726 physical reads 0 redo size 316 bytes sent via SQL*Net to client 421 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 2 sorts (memory) 0 sorts (disk) 1 rows processed
将语句中加入hints,让oracle的优化器使用嵌套循环,并且大表作为驱动表,生成新的执行计划: select /*+ ORDERED USE_NL(A) */ count(a.CHANNELB.user_class) from swd_billdetail B, SUPER_USER A where A.cn = B.cn;
EXEC_ORDER PLANLINE ---------- ----------------------------------------------------------------------------------------------------- 6 SELECT STATEMENT OPT_MODE:CHOOSE (COST=109893304,CARD=1,BYTES=21)
上一篇:通过分析SQL语句的执行计划优化SQL(三)
下一篇:数据库Oracle9i的企业管理器介绍
|
| 相关文章: |
|
|
|
| 相关软件: |
|
|
|
|