recyclebin造成的问题分析

   今天检查一套系统时发现有sql很慢,分析应用发现这是对数据库表空间使用率进行监控的一条sql。

select sum(bytes/1024/1024) from dba_free_space

我们来看看它的执行计划

Execution Plan

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

| Id  | Operation                        | Name             | Rows  | Bytes | Cost (%CPU)| Time     |

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

|   0 | SELECT STATEMENT                 |                  |       |       | 55320 (100)|          |

|   1 |  SORT AGGREGATE                  |                  |     1 |    13 |            |          |

|   2 |   VIEW                           | DBA_FREE_SPACE   |  3255 | 42315 | 55320 (100)| 00:11:04 |

|   3 |    UNION-ALL                     |                  |       |       |            |          |

|   4 |     NESTED LOOPS                 |                  |     1 |    56 |     4   (0)| 00:00:01 |

|   5 |      NESTED LOOPS                |                  |     1 |    45 |     3   (0)| 00:00:01 |

|   6 |       TABLE ACCESS FULL          | FET$             |     1 |    39 |     3   (0)| 00:00:01 |

|   7 |       INDEX UNIQUE SCAN          | I_FILE2          |     1 |     6 |     0   (0)|          |

|   8 |      TABLE ACCESS CLUSTER        | TS$              |     1 |    11 |     1   (0)| 00:00:01 |

|   9 |     NESTED LOOPS                 |                  |    78 |  4836 |     6   (0)| 00:00:01 |

|  10 |      NESTED LOOPS                |                  |    78 |  4368 |     6   (0)| 00:00:01 |

|  11 |       TABLE ACCESS FULL          | TS$              |    15 |   255 |     6   (0)| 00:00:01 |

|  12 |       FIXED TABLE FIXED INDEX    | X$KTFBFE (ind:1) |     5 |   195 |     0   (0)|          |

|  13 |      INDEX UNIQUE SCAN           | I_FILE2          |     1 |     6 |     0   (0)|          |

|  14 |     NESTED LOOPS                 |                  |  3175 |   306K| 55294 (100)| 00:11:04 |

|  15 |      NESTED LOOPS                |                  | 98165 |  8915K| 55286 (100)| 00:11:04 |

|  16 |       HASH JOIN                  |                  |  4533 |   123K|    22   (5)| 00:00:01 |

|  17 |        TABLE ACCESS FULL         | RECYCLEBIN$      |  4618 | 50798 |    15   (0)| 00:00:01 |

|  18 |        TABLE ACCESS FULL         | TS$              |    15 |   255 |     6   (0)| 00:00:01 |

|  19 |       FIXED TABLE FIXED INDEX    | X$KTFBUE (ind:1) |    22 |  1430 |    12 (100)| 00:00:01 |

|  20 |      INDEX UNIQUE SCAN           | I_FILE2          |     1 |     6 |     0   (0)|          |

|  21 |     NESTED LOOPS                 |                  |     1 |    80 |    16   (0)| 00:00:01 |

|  22 |      NESTED LOOPS                |                  |     1 |    69 |    15   (0)| 00:00:01 |

|  23 |       NESTED LOOPS               |                  |     1 |    58 |    14   (0)| 00:00:01 |

|  24 |        TABLE ACCESS FULL         | UET$             |     1 |    52 |    14   (0)| 00:00:01 |

|  25 |        INDEX UNIQUE SCAN         | I_FILE2          |     1 |     6 |     0   (0)|          |

|  26 |       TABLE ACCESS BY INDEX ROWID| RECYCLEBIN$      |     1 |    11 |     1   (0)| 00:00:01 |

|  27 |        INDEX RANGE SCAN          | RECYCLEBIN$_TS   |   660 |       |     1   (0)| 00:00:01 |

|  28 |      TABLE ACCESS CLUSTER        | TS$              |     1 |    11 |     1   (0)| 00:00:01 |

|  29 |       INDEX UNIQUE SCAN          | I_TS#            |     1 |       |     0   (0)|          |

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

从执行计划可以看到,RECYCLEBIN$ 这张表有4600多条记录,最后做nested loop用了11秒钟,当被删除表增多后肯定会更慢。RECYCLEBIN$ 是存放被删除表的地方,是10g的新功能。看来又是应用把真正的表当临时表在用,导致大量表被删除。除了摇头轻叹外,只能动手敲下purge dba_recyclebin,同时制定了每天定时清理回收站的job。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11088128/viewspace-688204/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11088128/viewspace-688204/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值