+ -
当前位置:首页 → 问答吧 → 这个执行计划有问题吗?

这个执行计划有问题吗?

时间:2011-09-05

来源:互联网


Plan hash value: 1968425629

------------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name           | Rows  | Bytes | Cost (%CPU)      | Time     |
------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                |     1 |   335 |    36        (20)| 00:00:01 |
|   1 |  SORT ORDER BY                |                |     1 |   335 |    36        (20)| 00:00:01 |
|   2 |   NESTED LOOPS                |                |     1 |   335 |    35        (18)| 00:00:01 |
|*  3 |    TABLE ACCESS FULL          | SL_ORDER_DT    |     1 |    13 |    34        (18)| 00:00:01 |
|*  4 |    TABLE ACCESS BY INDEX ROWID| SL_ITEMS       |     1 |   322 |     1         (0)| 00:00:01 |
|*  5 |     INDEX UNIQUE SCAN         | PK_SL_ITEMS    |     1 |       |     0         (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------

select count(1) from sl_order_dt;

  COUNT(1)
----------
     68295


作者: XQKA   发布时间: 2011-09-05

SQL> create index idx_sl_order_dt_1 on sl_order_dt(order_id,sales_item_id) tablespace indx;

Index created.

改变了
|*  3 |    TABLE ACCESS FULL          | SL_ORDER_DT    |     1 |    13 |    34        (18)| 00:00:01 |

作者: XQKA   发布时间: 2011-09-05

效果还不错。
由于调优经验不多,所以想请教一下
是不是对一张表的访问,如果第一步走的就是FTS,就是应该引起注意的 ?


另外:
看到 nest loop 是不是也应该引起注意?
我潜意识的觉得nets loop没有hash join效果好.

[ 本帖最后由 XQKA 于 2011-9-5 15:32 编辑 ]

作者: XQKA   发布时间: 2011-09-05

对一张表访问怎么走嵌套循环啊
SL_ITEMS 呢

作者: 397813478   发布时间: 2011-09-05

FTS 是需要注意  但是 索引也不是一定建了就好,当你查出来的数据占表中的数据5%-10%以上的时候 索引反而没有FTS效率高了
从执行计划看 加索引是正确的

[ 本帖最后由 ccceleven 于 2011-9-5 15:34 编辑 ]

作者: ccceleven   发布时间: 2011-09-05



QUOTE:原帖由 397813478 于 2011-9-5 15:30 发表
对一张表访问怎么走嵌套循环啊
SL_ITEMS 呢

嵌套循环是两张表的互动形式。我觉得第一张表的full table scan是有问题的。加了索引,查看计划COST降到了5.



-----------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name              | Rows  | Bytes | Cost (%CPU)   | Time     |
-----------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                   |     1 |   332 |        5  (20)| 00:00:01 |
|   1 |  SORT ORDER BY                |                   |     1 |   332 |        5  (20)| 00:00:01 |
|   2 |   NESTED LOOPS                |                   |     1 |   332 |        4   (0)| 00:00:01 |
|*  3 |    TABLE ACCESS FULL          | SL_ORDER_DT       |     1 |    10 |        3   (0)| 00:00:01 |
|*  4 |     INDEX RANGE SCAN          | IDX_SL_ORDER_DT_1 |     2 |       |        1   (0)| 00:00:01 |
|*  5 |    TABLE ACCESS BY INDEX ROWID| SL_ITEMS          |     1 |   322 |        1   (0)| 00:00:01 |
|*  6 |     INDEX UNIQUE SCAN         | PK_SL_ITEMS       |     1 |       |        0   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------

作者: XQKA   发布时间: 2011-09-05

评估出来的行数对么?SL_ORDER_DT满足条件的行数是多少?

作者: sundog315   发布时间: 2011-09-05