oracle 回收站(recyclebin)引起的性能问题

    检查最近的数据库AWR报告,发现有一条系统的SQL非常慢,执行一次接近37s,把SQL弄出来执行了一下,发现问题出在回收站,回收站中有1万3千张表,清理之后,运行此条SQL只需要0.46s。我想影响的SQL不仅仅是这一条,相关调用数据字典的功能都会有好处。

109 13 3 36.49 1.94 fk8ncdwta6fx2 JDBC Thin Client SELECT a.tablespace_name "Tabl...

SQL> set linesize 300

SQL> set autotrace traceonly
SQL> set timing on
SQL> SELECT a.tablespace_name "Tablespace_name",
  2         total "Total",
  3         free "Free",
  4         ROUND(free / total, 4) * 100 "%free"
  5    FROM (SELECT tablespace_name, SUM(bytes) free
  6            FROM DBA_FREE_SPACE
  7           GROUP BY tablespace_name) a,
  8         (SELECT tablespace_name, SUM(bytes) total
  9            FROM DBA_DATA_FILES
 10           GROUP BY tablespace_name) b
 11   WHERE a.tablespace_name = b.tablespace_name;
已选择7行。

已用时间:  00: 00: 34.50
执行计划
----------------------------------------------------------------------------------------------
| Id  | Operation                            | Name             | Rows  | Bytes | Cost (%CPU)|
----------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                  |  1298 | 77880 |   171K(100)|
|   1 |  MERGE JOIN                          |                  |  1298 | 77880 |   171K(100)|
|   2 |   SORT JOIN                          |                  | 64916 |  1901K|   171K(100)|
|   3 |    VIEW                              |                  | 64916 |  1901K|   171K(100)|
|   4 |     HASH GROUP BY                    |                  | 64916 |  1901K|   171K(100)|
|   5 |      VIEW                            | DBA_FREE_SPACE   | 64916 |  1901K|   171K(100)|
|   6 |       UNION-ALL                      |                  |       |       |            |
|   7 |        NESTED LOOPS                  |                  |     1 |    63 |     4   (0)|
|   8 |         NESTED LOOPS                 |                  |     1 |    45 |     3   (0)|
|   9 |          TABLE ACCESS FULL           | FET$             |     1 |    39 |     3   (0)|
|  10 |          INDEX UNIQUE SCAN           | I_FILE2          |     1 |     6 |     0   (0)|
|  11 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    18 |     1   (0)|
|  12 |        NESTED LOOPS                  |                  |    82 |  5658 |     4   (0)|
|  13 |         NESTED LOOPS                 |                  |    82 |  5166 |     4   (0)|
|  14 |          TABLE ACCESS FULL           | TS$              |     7 |   168 |     4   (0)|
|  15 |          FIXED TABLE FIXED INDEX     | X$KTFBFE (ind:1) |    13 |   507 |     0   (0)|
|  16 |         INDEX UNIQUE SCAN            | I_FILE2          |     1 |     6 |     0   (0)|
|  17 |        NESTED LOOPS                  |                  | 64832 |  6774K|   171K(100)|
|  18 |         NESTED LOOPS                 |                  | 91493 |  9024K|   171K(100)|
|  19 |          HASH JOIN                   |                  | 13456 |   473K|   107   (1)|
|  20 |           TABLE ACCESS FULL          | RECYCLEBIN$      | 14707 |   172K|   103   (1)|
|  21 |           TABLE ACCESS FULL          | TS$              |     7 |   168 |     4   (0)|
|  22 |          FIXED TABLE FIXED INDEX     | X$KTFBUE (ind:1) |     7 |   455 |    13 (100)|
|  23 |         INDEX UNIQUE SCAN            | I_FILE2          |     1 |     6 |     0   (0)|
|  24 |        NESTED LOOPS                  |                  |     1 |    88 |    16   (0)|
|  25 |         NESTED LOOPS                 |                  |     1 |    70 |    15   (0)|
|  26 |          NESTED LOOPS                |                  |     1 |    58 |    14   (0)|
|  27 |           TABLE ACCESS FULL          | UET$             |     1 |    52 |    14   (0)|
|  28 |           INDEX UNIQUE SCAN          | I_FILE2          |     1 |     6 |     0   (0)|
|  29 |          TABLE ACCESS BY INDEX ROWID | RECYCLEBIN$      |     1 |    12 |     1   (0)|
|  30 |           INDEX RANGE SCAN           | RECYCLEBIN$_TS   |  7354 |       |     1   (0)|
|  31 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    18 |     1   (0)|
|  32 |          INDEX UNIQUE SCAN           | I_TS#            |     1 |       |     0   (0)|
|  33 |   SORT JOIN                          |                  |     2 |    60 |     6  (34)|
|  34 |    VIEW                              |                  |     2 |    60 |     5  (20)|
|  35 |     HASH GROUP BY                    |                  |     2 |    60 |     5  (20)|
|  36 |      VIEW                            | DBA_DATA_FILES   |     2 |    60 |     4   (0)|
|  37 |       UNION-ALL                      |                  |       |       |            |
|  38 |        NESTED LOOPS                  |                  |     1 |   356 |     2   (0)|
|  39 |         NESTED LOOPS                 |                  |     1 |   342 |     1   (0)|
|  40 |          NESTED LOOPS                |                  |     1 |   329 |     1   (0)|
|  41 |           FIXED TABLE FULL           | X$KCCFN          |     1 |   310 |     0   (0)|
|  42 |           TABLE ACCESS BY INDEX ROWID| FILE$            |     1 |    19 |     1   (0)|
|  43 |            INDEX UNIQUE SCAN         | I_FILE1          |     1 |       |     0   (0)|
|  44 |          FIXED TABLE FIXED INDEX     | X$KCCFE (ind:1)  |     4 |    52 |     0   (0)|
|  45 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    14 |     1   (0)|
|  46 |          INDEX UNIQUE SCAN           | I_TS#            |     1 |       |     0   (0)|
|  47 |        NESTED LOOPS                  |                  |     1 |   399 |     2   (0)|
|  48 |         NESTED LOOPS                 |                  |     1 |   385 |     1   (0)|
|  49 |          NESTED LOOPS                |                  |     1 |   372 |     1   (0)|
|  50 |           NESTED LOOPS               |                  |     1 |   362 |     0   (0)|
|  51 |            FIXED TABLE FULL          | X$KCCFN          |     1 |   310 |     0   (0)|
|  52 |            FIXED TABLE FIXED INDEX   | X$KTFBHC (ind:1) |     1 |    52 |     0   (0)|
|  53 |           TABLE ACCESS BY INDEX ROWID| FILE$            |     1 |    10 |     1   (0)|
|  54 |            INDEX UNIQUE SCAN         | I_FILE1          |     1 |       |     0   (0)|
|  55 |          FIXED TABLE FIXED INDEX     | X$KCCFE (ind:1)  |     4 |    52 |     0   (0)|
|  56 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    14 |     1   (0)|
|  57 |          INDEX UNIQUE SCAN           | I_TS#            |     1 |       |     0   (0)|
----------------------------------------------------------------------------------------------
Note
-----
   - 'PLAN_TABLE' is old version
统计信息
----------------------------------------------------------
     344711  recursive calls
        316  db block gets
      65610  consistent gets
      15018  physical reads
          0  redo size
        496  bytes sent via SQL*Net to client
        239  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          7  rows processed

执行purge recyclebin; 后
SQL> /
已选择7行。
已用时间:  00: 00: 00.46
执行计划
----------------------------------------------------------------------------------------------
| Id  | Operation                            | Name             | Rows  | Bytes | Cost (%CPU)|
----------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                  |  1298 | 77880 |   171K(100)|
|   1 |  MERGE JOIN                          |                  |  1298 | 77880 |   171K(100)|
|   2 |   SORT JOIN                          |                  | 64916 |  1901K|   171K(100)|
|   3 |    VIEW                              |                  | 64916 |  1901K|   171K(100)|
|   4 |     HASH GROUP BY                    |                  | 64916 |  1901K|   171K(100)|
|   5 |      VIEW                            | DBA_FREE_SPACE   | 64916 |  1901K|   171K(100)|
|   6 |       UNION-ALL                      |                  |       |       |            |
|   7 |        NESTED LOOPS                  |                  |     1 |    63 |     4   (0)|
|   8 |         NESTED LOOPS                 |                  |     1 |    45 |     3   (0)|
|   9 |          TABLE ACCESS FULL           | FET$             |     1 |    39 |     3   (0)|
|  10 |          INDEX UNIQUE SCAN           | I_FILE2          |     1 |     6 |     0   (0)|
|  11 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    18 |     1   (0)|
|  12 |        NESTED LOOPS                  |                  |    82 |  5658 |     4   (0)|
|  13 |         NESTED LOOPS                 |                  |    82 |  5166 |     4   (0)|
|  14 |          TABLE ACCESS FULL           | TS$              |     7 |   168 |     4   (0)|
|  15 |          FIXED TABLE FIXED INDEX     | X$KTFBFE (ind:1) |    13 |   507 |     0   (0)|
|  16 |         INDEX UNIQUE SCAN            | I_FILE2          |     1 |     6 |     0   (0)|
|  17 |        NESTED LOOPS                  |                  | 64832 |  6774K|   171K(100)|
|  18 |         NESTED LOOPS                 |                  | 91493 |  9024K|   171K(100)|
|  19 |          HASH JOIN                   |                  | 13456 |   473K|   107   (1)|
|  20 |           TABLE ACCESS FULL          | RECYCLEBIN$      | 14707 |   172K|   103   (1)|
|  21 |           TABLE ACCESS FULL          | TS$              |     7 |   168 |     4   (0)|
|  22 |          FIXED TABLE FIXED INDEX     | X$KTFBUE (ind:1) |     7 |   455 |    13 (100)|
|  23 |         INDEX UNIQUE SCAN            | I_FILE2          |     1 |     6 |     0   (0)|
|  24 |        NESTED LOOPS                  |                  |     1 |    88 |    16   (0)|
|  25 |         NESTED LOOPS                 |                  |     1 |    70 |    15   (0)|
|  26 |          NESTED LOOPS                |                  |     1 |    58 |    14   (0)|
|  27 |           TABLE ACCESS FULL          | UET$             |     1 |    52 |    14   (0)|
|  28 |           INDEX UNIQUE SCAN          | I_FILE2          |     1 |     6 |     0   (0)|
|  29 |          TABLE ACCESS BY INDEX ROWID | RECYCLEBIN$      |     1 |    12 |     1   (0)|
|  30 |           INDEX RANGE SCAN           | RECYCLEBIN$_TS   |  7354 |       |     1   (0)|
|  31 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    18 |     1   (0)|
|  32 |          INDEX UNIQUE SCAN           | I_TS#            |     1 |       |     0   (0)|
|  33 |   SORT JOIN                          |                  |     2 |    60 |     6  (34)|
|  34 |    VIEW                              |                  |     2 |    60 |     5  (20)|
|  35 |     HASH GROUP BY                    |                  |     2 |    60 |     5  (20)|
|  36 |      VIEW                            | DBA_DATA_FILES   |     2 |    60 |     4   (0)|
|  37 |       UNION-ALL                      |                  |       |       |            |
|  38 |        NESTED LOOPS                  |                  |     1 |   356 |     2   (0)|
|  39 |         NESTED LOOPS                 |                  |     1 |   342 |     1   (0)|
|  40 |          NESTED LOOPS                |                  |     1 |   329 |     1   (0)|
|  41 |           FIXED TABLE FULL           | X$KCCFN          |     1 |   310 |     0   (0)|
|  42 |           TABLE ACCESS BY INDEX ROWID| FILE$            |     1 |    19 |     1   (0)|
|  43 |            INDEX UNIQUE SCAN         | I_FILE1          |     1 |       |     0   (0)|
|  44 |          FIXED TABLE FIXED INDEX     | X$KCCFE (ind:1)  |     4 |    52 |     0   (0)|
|  45 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    14 |     1   (0)|
|  46 |          INDEX UNIQUE SCAN           | I_TS#            |     1 |       |     0   (0)|
|  47 |        NESTED LOOPS                  |                  |     1 |   399 |     2   (0)|
|  48 |         NESTED LOOPS                 |                  |     1 |   385 |     1   (0)|
|  49 |          NESTED LOOPS                |                  |     1 |   372 |     1   (0)|
|  50 |           NESTED LOOPS               |                  |     1 |   362 |     0   (0)|
|  51 |            FIXED TABLE FULL          | X$KCCFN          |     1 |   310 |     0   (0)|
|  52 |            FIXED TABLE FIXED INDEX   | X$KTFBHC (ind:1) |     1 |    52 |     0   (0)|
|  53 |           TABLE ACCESS BY INDEX ROWID| FILE$            |     1 |    10 |     1   (0)|
|  54 |            INDEX UNIQUE SCAN         | I_FILE1          |     1 |       |     0   (0)|
|  55 |          FIXED TABLE FIXED INDEX     | X$KCCFE (ind:1)  |     4 |    52 |     0   (0)|
|  56 |         TABLE ACCESS CLUSTER         | TS$              |     1 |    14 |     1   (0)|
|  57 |          INDEX UNIQUE SCAN           | I_TS#            |     1 |       |     0   (0)|
----------------------------------------------------------------------------------------------
Note
-----
   - 'PLAN_TABLE' is old version
统计信息
----------------------------------------------------------
      19073  recursive calls
        308  db block gets
       5429  consistent gets
        826  physical reads
          0  redo size
        514  bytes sent via SQL*Net to client
        239  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          7  rows processed

你可能感兴趣的:(oracle 回收站(recyclebin)引起的性能问题)