首页 » ORACLE, ORACLE [C]系列 » query dba_free_space(tablespace usage) slow after upgrade 12c R2

query dba_free_space(tablespace usage) slow after upgrade 12c R2

前不久有个下线EXADATA并同时从11g R2 升级12C R2的案例,反应升级12c后明显感觉原来查询表空间使用率的脚本时间比升级前长了很多, 要花好几分钟, 这种情况时通常是因为recyclebin$回收站中的对象太多,清理回收站解决, 但是这次的回收站并无多少对象(<100), 这是一个50 TB左右的数据库,有350个左右的数据文件。

今天有时间分析一下,下一步当然是要看SQL的执行计划,这里使用sql monitor

 SQL> select dbms_sqltune.report_sql_monitor(sql_id=>'&sql_id',report_level=>'ALL',type=>'text') from dual;  
Enter value for sql_id: 19bgcf8grxdxm

DBMS_SQLTUNE.REPORT_SQL_MONITOR(SQL_ID=>'19BGCF8GRXDXM',REPORT_LEVEL=>'ALL',TYPE=>'TEXT')
--------------------------------------------------------------------------------------------------------------------
SQL Monitoring Report

SQL Text
------------------------------
select t.tablespace_name, t.mb "TotalMB", t.mb - nvl(f.mb,0) "UsedMB", nvl(f.mb,0) "FreeMB" ,lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "% Used", t.ext "Ext", '|'||rpad(lpad('#',ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*20),'#'),20,' ')||'|' "Used" from ( select tablespace_name, trunc(sum(bytes)/1048576) MB from dba_free_space group by tablespace_name union all select tablespace_name, trunc(sum(bytes_free)/1048576) MB from v$temp_space_header group by tablespace_name ) f, (
select tablespace_name, trunc(sum(bytes)/1048576) MB, max(autoextensible) ext from dba_data_files group by tablespace_name union all select tablespace_name, trunc(sum(bytes)/1048576) MB, max(autoextensible) ext from dba_temp_files group by tablespace_name ) t where t.tablespace_name = f.tablespace_name (+) order by t.tablespace_name

Global Information
------------------------------
 Status              :  EXECUTING
 Instance ID         :  1
 Session             :  SYS (614:29445)
 SQL ID              :  19bgcf8grxdxm
 SQL Execution ID    :  16777220
 Execution Started   :  02/25/2019 16:20:58
 First Refresh Time  :  02/25/2019 16:21:02
 Last Refresh Time   :  02/25/2019 16:22:24
 Duration            :  87s
 Module/Action       :  sqlplus@kdrpt01 (TNS V1-V3)/-
 Service             :  SYS$USERS
 Program             :  sqlplus@kdrpt01 (TNS V1-V3)

Global Stats
===================================================================
| Elapsed |   Cpu   |    IO    | Cluster  | Buffer | Read | Read  |
| Time(s) | Time(s) | Waits(s) | Waits(s) |  Gets  | Reqs | Bytes |
===================================================================
|      96 |      28 |       60 |     9.15 |     1M | 168K |   1GB |
===================================================================

Parallel Execution Details (DOP=2 , Servers Allocated=4)
========================================================================================================================================
|      Name      | Type | Server# | Elapsed |   Cpu   |    IO    | Cluster  | Buffer | Read | Read  |           Wait Events            |
|                |      |         | Time(s) | Time(s) | Waits(s) | Waits(s) |  Gets  | Reqs | Bytes |            (sample #)            |
========================================================================================================================================
| PX Coordinator | QC   |         |      96 |      28 |       60 |     9.15 |     1M | 168K |   1GB | gc cr disk read (12)             |
|                |      |         |         |         |          |          |        |      |       | control file sequential read (2) |
|                |      |         |         |         |          |          |        |      |       | db file sequential read (54)     |
========================================================================================================================================

Instance Drill-Down
=================================================================================================================================
| Instance | Process Names | Elapsed |   Cpu   |    IO    | Cluster  | Buffer | Read | Read  | Wait Events                      |
|          |               | Time(s) | Time(s) | Waits(s) | Waits(s) |  Gets  | Reqs | Bytes |                                  |
=================================================================================================================================
|    1     | QC            |      96 |      28 |       60 |     9.15 |     1M | 168K |   1GB | gc cr disk read (12)             |
|          |               |         |         |          |          |        |      |       | control file sequential read (3) |
|          |               |         |         |          |          |        |      |       | db file sequential read (54)     |
=================================================================================================================================

SQL Plan Monitoring Details (Plan Hash Value=259291012)
============================================================================================================================================================================================================
| Id    |                Operation                 |           Name            |  Rows   | Cost |   Time    | Start  | Execs |   Rows   | Read | Read  | Mem | Activity |         Activity Detail          |
|       |                                          |                           | (Estim) |      | Active(s) | Active |       | (Actual) | Reqs | Bytes |     |   (%)    |           (# samples)            |
============================================================================================================================================================================================================
|     0 | SELECT STATEMENT                         |                           |         |      |           |        |     1 |          |      |       |   . |          |                                  |
|     1 |   SORT ORDER BY                          |                           |       8 |  122 |           |        |     1 |          |      |       |   . |          |                                  |
|     2 |    HASH JOIN OUTER                       |                           |       8 |  121 |         1 |     +4 |     1 |        0 |      |       | 1MB |          |                                  |
|     3 |     VIEW                                 |                           |       8 |   22 |         1 |     +4 |     1 |       26 |      |       |   . |          |                                  |
|     4 |      UNION-ALL                           |                           |         |      |         1 |     +4 |     1 |       26 |      |       |   . |          |                                  |
|     5 |       HASH GROUP BY                      |                           |       6 |   17 |         1 |     +4 |     1 |       25 |      |       |   . |          |                                  |
|     6 |        VIEW                              | DBA_DATA_FILES            |       6 |   16 |         1 |     +4 |     1 |     1342 |      |       |   . |          |                                  |
|     7 |         UNION-ALL                        |                           |         |      |         1 |     +4 |     1 |     1342 |      |       |   . |          |                                  |
|     8 |          NESTED LOOPS                    |                           |       1 |    6 |           |        |     1 |          |      |       |   . |          |                                  |
|     9 |           NESTED LOOPS                   |                           |       1 |    5 |           |        |     1 |          |      |       |   . |          |                                  |
|    10 |            NESTED LOOPS                  |                           |       1 |    5 |         1 |     +4 |     1 |        0 |      |       |   . |          |                                  |
|    11 |             FIXED TABLE FULL             | X$KCCFN                   |       5 |      |         1 |     +4 |     1 |     1342 |   23 |   4MB |   . |          |                                  |
|    12 |             TABLE ACCESS BY INDEX ROWID  | FILE$                     |       1 |    1 |         1 |     +4 |  1342 |        0 |      |       |   . |          |                                  |
|    13 |              INDEX UNIQUE SCAN           | I_FILE1                   |       1 |      |         1 |     +4 |  1342 |     1342 |      |       |   . |          |                                  |
|    14 |            FIXED TABLE FIXED INDEX       | X$KCCFE (ind:1)           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    15 |           TABLE ACCESS CLUSTER           | TS$                       |       1 |    1 |           |        |       |          |      |       |   . |          |                                  |
|    16 |            INDEX UNIQUE SCAN             | I_TS#                     |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    17 |          NESTED LOOPS                    |                           |       5 |   10 |         1 |     +4 |     1 |     1342 |      |       |   . |          |                                  |
|    18 |           NESTED LOOPS                   |                           |       5 |    5 |         1 |     +4 |     1 |     1342 |      |       |   . |          |                                  |
|    19 |            NESTED LOOPS                  |                           |       5 |    5 |         1 |     +4 |     1 |     1342 |      |       |   . |          |                                  |
|    20 |             NESTED LOOPS                 |                           |       5 |      |         1 |     +4 |     1 |     1342 |      |       |   . |          |                                  |
|    21 |              FIXED TABLE FULL            | X$KCCFN                   |       5 |      |         1 |     +4 |     1 |     1342 |   23 |   4MB |   . |          |                                  |
|    22 |              FIXED TABLE FIXED INDEX     | X$KTFBHC (ind:1)          |       1 |      |         1 |     +4 |  1342 |     1342 |      |       |   . |          |                                  |
|    23 |             TABLE ACCESS BY INDEX ROWID  | FILE$                     |       1 |    1 |         1 |     +4 |  1342 |     1342 |      |       |   . |          |                                  |
|    24 |              INDEX UNIQUE SCAN           | I_FILE1                   |       1 |      |         1 |     +4 |  1342 |     1342 |      |       |   . |          |                                  |
|    25 |            FIXED TABLE FIXED INDEX       | X$KCCFE (ind:1)           |       1 |      |         4 |     +1 |  1342 |     1342 | 5407 |  84MB |   . |     2.25 | control file sequential read (2) |
|    26 |           TABLE ACCESS CLUSTER           | TS$                       |       1 |    1 |         1 |     +4 |  1342 |     1342 |      |       |   . |          |                                  |
|    27 |            INDEX UNIQUE SCAN             | I_TS#                     |       1 |      |         1 |     +4 |  1342 |     1342 |      |       |   . |          |                                  |
|    28 |       HASH GROUP BY                      |                           |       2 |    5 |         1 |     +4 |     1 |        1 |      |       |   . |          |                                  |
|    29 |        VIEW                              | DBA_TEMP_FILES            |       2 |    4 |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    30 |         SORT UNIQUE                      |                           |       2 |    4 |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    31 |          UNION-ALL                       |                           |         |      |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    32 |           NESTED LOOPS                   |                           |       1 |    1 |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    33 |            NESTED LOOPS                  |                           |       1 |      |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    34 |             NESTED LOOPS                 |                           |       1 |      |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    35 |              NESTED LOOPS                |                           |       1 |      |         1 |     +4 |     1 |        8 |      |       |   . |          |                                  |
|    36 |               FIXED TABLE FULL           | X$KCCTF                   |       1 |      |         1 |     +4 |     1 |        8 |    4 | 65536 |   . |          |                                  |
|    37 |               FIXED TABLE FIXED INDEX    | X$KCCFN (ind:1)           |       1 |      |         1 |     +4 |     8 |        8 |   32 | 512KB |   . |          |                                  |
|    38 |              FIXED TABLE FIXED INDEX     | X$KCVFHTMP (ind:1)        |       1 |      |         1 |     +4 |     8 |        8 |   40 | 576KB |   . |          |                                  |
|    39 |             FIXED TABLE FIXED INDEX      | X$KTFTHC (ind:2)          |       1 |      |         1 |     +4 |     8 |        8 |      |       |   . |          |                                  |
|    40 |            TABLE ACCESS CLUSTER          | TS$                       |       1 |    1 |         1 |     +4 |     8 |        8 |      |       |   . |          |                                  |
|    41 |             INDEX UNIQUE SCAN            | I_TS#                     |       1 |      |         1 |     +4 |     8 |        8 |      |       |   . |          |                                  |
|    42 |           NESTED LOOPS                   |                           |       1 |    1 |         1 |     +4 |     1 |        0 |      |       |   . |          |                                  |
|    43 |            HASH JOIN                     |                           |       1 |      |         1 |     +4 |     1 |       16 |      |       |   . |          |                                  |
|    44 |             PX COORDINATOR               |                           |         |      |         1 |     +4 |     1 |       16 |      |       |   . |          |                                  |
|    45 |              PX SEND QC (RANDOM)         | :TQ10000                  |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    46 |               VIEW                       | GV$TEMPFILE_INFO_INSTANCE |         |      |           |        |       |          |      |       |   . |          |                                  |
|    47 |                NESTED LOOPS              |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    48 |                 NESTED LOOPS             |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    49 |                  MERGE JOIN CARTESIAN    |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    50 |                   FIXED TABLE FULL       | X$KCCTF                   |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    51 |                   BUFFER SORT            |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    52 |                    FIXED TABLE FULL      | X$KCVFHTMP                |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    53 |                  FIXED TABLE FIXED INDEX | X$KTFTHC (ind:2)          |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    54 |                 FIXED TABLE FIXED INDEX  | X$KCCFN (ind:1)           |       1 |      |         1 |     +3 |       |          |      |       |   . |     2.25 | control file sequential read (2) |
|    55 |             PX COORDINATOR               |                           |         |      |         1 |     +4 |     1 |        2 |      |       |   . |          |                                  |
|    56 |              PX SEND QC (RANDOM)         | :TQ20000                  |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    57 |               VIEW                       | GV$INSTANCE               |         |      |           |        |       |          |      |       |   . |          |                                  |
|    58 |                MERGE JOIN CARTESIAN      |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    59 |                 MERGE JOIN CARTESIAN     |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    60 |                  MERGE JOIN CARTESIAN    |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    61 |                   FIXED TABLE FULL       | X$KSUXSINST               |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    62 |                   BUFFER SORT            |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    63 |                    FIXED TABLE FULL      | X$QUIESCE                 |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    64 |                  BUFFER SORT             |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    65 |                   FIXED TABLE FULL       | X$KJIDT                   |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    66 |                 BUFFER SORT              |                           |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    67 |                  FIXED TABLE FULL        | X$KVIT                    |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    68 |            TABLE ACCESS CLUSTER          | TS$                       |       1 |    1 |         1 |     +4 |    16 |        0 |      |       |   . |          |                                  |
|    69 |             INDEX UNIQUE SCAN            | I_TS#                     |       1 |      |         1 |     +4 |    16 |       16 |      |       |   . |          |                                  |
|    70 |     VIEW                                 |                           |      26 |   99 |           |        |     1 |          |      |       |   . |          |                                  |
|    71 |      UNION-ALL                           |                           |         |      |           |        |     1 |          |      |       |   . |          |                                  |
|    72 |       HASH GROUP BY                      |                           |      25 |   89 |        71 |     +4 |     1 |        0 |      |       | 1MB |          |                                  |
|    73 |        VIEW                              | DBA_FREE_SPACE            |     123 |   88 |        71 |     +4 |     1 |    99234 |      |       |   . |          |                                  |
|    74 |         UNION-ALL                        |                           |         |      |        71 |     +4 |     1 |    99234 |      |       |   . |          |                                  |
|    75 |          NESTED LOOPS                    |                           |       1 |    4 |           |        |     1 |          |      |       |   . |          |                                  |
|    76 |           NESTED LOOPS                   |                           |       1 |    4 |           |        |     1 |          |      |       |   . |          |                                  |
|    77 |            TABLE ACCESS FULL             | FET$                      |       1 |    4 |           |        |     1 |          |      |       |   . |          |                                  |
|    78 |            TABLE ACCESS CLUSTER          | TS$                       |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    79 |             INDEX UNIQUE SCAN            | I_TS#                     |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    80 |           INDEX UNIQUE SCAN              | I_FILE2                   |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|    81 |          NESTED LOOPS                    |                           |      31 |    9 |         3 |     +4 |     1 |    96484 |      |       |   . |          |                                  |
|    82 |           NESTED LOOPS                   |                           |      31 |    9 |         3 |     +4 |     1 |    96484 |      |       |   . |          |                                  |
|    83 |            TABLE ACCESS FULL             | TS$                       |      25 |    9 |         3 |     +4 |     1 |       25 |      |       |   . |          |                                  |
|    84 |            FIXED TABLE FIXED INDEX       | X$KTFBFE (ind:1)          |       1 |      |         3 |     +4 |    25 |    96484 |      |       |   . |     1.12 | Cpu (1)                          |
|    85 |           INDEX UNIQUE SCAN              | I_FILE2                   |       1 |      |         3 |     +4 | 96484 |    96484 |      |       |   . |          |                                  |
|    86 |          NESTED LOOPS                    |                           |      89 |   60 |        67 |     +8 |     1 |     2750 |      |       |   . |          |                                  |
| -> 87 |           HASH JOIN                      |                           |     639 |   60 |        85 |     +6 |     1 |     2750 |      |       | 1MB |     1.12 | Cpu (1)                          |
|    88 |            NESTED LOOPS                  |                           |      56 |   39 |         1 |     +6 |     1 |       57 |      |       |   . |          |                                  |
|    89 |             NESTED LOOPS                 |                           |     275 |   39 |         1 |     +6 |     1 |       57 |      |       |   . |          |                                  |
|    90 |              TABLE ACCESS FULL           | TS$                       |      25 |    9 |         1 |     +6 |     1 |       25 |      |       |   . |          |                                  |
|    91 |              INDEX RANGE SCAN            | RECYCLEBIN$_TS            |      11 |    1 |         1 |     +6 |    25 |       57 |      |       |   . |          |                                  |
|    92 |             TABLE ACCESS BY INDEX ROWID  | RECYCLEBIN$               |       2 |    2 |         1 |     +6 |    57 |       57 |      |       |   . |          |                                  |
| -> 93 |            FIXED TABLE FULL              | X$KTFBUE                  |    100K |   20 |        86 |     +5 |     1 |       8M | 163K |   1GB |   . |    91.01 | gc cr disk read (12)             |
|       |                                          |                           |         |      |           |        |       |          |      |       |     |          | Cpu (15)                         |
|       |                                          |                           |         |      |           |        |       |          |      |       |     |          | db file sequential read (54)     |
| -> 94 |           INDEX UNIQUE SCAN              | I_FILE2                   |       1 |      |        83 |     +8 |  2750 |     2750 |      |       |   . |          |                                  |
|    95 |          NESTED LOOPS                    |                           |       1 |   12 |           |        |       |          |      |       |   . |          |                                  |
|    96 |           NESTED LOOPS                   |                           |      11 |   12 |           |        |       |          |      |       |   . |          |                                  |
|    97 |            NESTED LOOPS                  |                           |       1 |   10 |           |        |       |          |      |       |   . |          |                                  |
|    98 |             NESTED LOOPS                 |                           |       1 |   10 |           |        |       |          |      |       |   . |          |                                  |
|    99 |              TABLE ACCESS FULL           | TS$                       |       1 |    9 |           |        |       |          |      |       |   . |          |                                  |
|   100 |              TABLE ACCESS CLUSTER        | UET$                      |       1 |    1 |           |        |       |          |      |       |   . |          |                                  |
|   101 |               INDEX RANGE SCAN           | I_FILE#_BLOCK#            |       1 |    1 |           |        |       |          |      |       |   . |          |                                  |
|   102 |             INDEX UNIQUE SCAN            | I_FILE2                   |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|   103 |            INDEX RANGE SCAN              | RECYCLEBIN$_TS            |      11 |    1 |           |        |       |          |      |       |   . |          |                                  |
|   104 |           TABLE ACCESS BY INDEX ROWID    | RECYCLEBIN$               |       1 |    2 |           |        |       |          |      |       |   . |          |                                  |
|   105 |          NESTED LOOPS                    |                           |       1 |    3 |           |        |       |          |      |       |   . |          |                                  |
|   106 |           NESTED LOOPS                   |                           |       1 |    2 |           |        |       |          |      |       |   . |          |                                  |
|   107 |            TABLE ACCESS FULL             | NEW_LOST_WRITE_EXTENTS$   |       1 |    2 |           |        |       |          |      |       |   . |          |                                  |
|   108 |            TABLE ACCESS CLUSTER          | TS$                       |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|   109 |             INDEX UNIQUE SCAN            | I_TS#                     |       1 |      |           |        |       |          |      |       |   . |          |                                  |
|   110 |           INDEX RANGE SCAN               | I_FILE2                   |       1 |    1 |           |        |       |          |      |       |   . |          |                                  |
|   111 |       HASH GROUP BY                      |                           |       1 |   10 |           |        |       |          |      |       |   . |          |                                  |
|   112 |        NESTED LOOPS                      |                           |       1 |    9 |           |        |       |          |      |       |   . |          |                                  |
|   113 |         TABLE ACCESS FULL                | TS$                       |       1 |    9 |           |        |       |          |      |       |   . |          |                                  |
|   114 |         FIXED TABLE FIXED INDEX          | X$KTFTHC (ind:2)          |       1 |      |           |        |       |          |      |       |   . |          |                                  |
============================================================================================================================================================================================================

Note:
从执行计划看显示是#93 占用了大部分的时间, 使用的是全表扫X$KTFBUE , 估算是是100K,实际当时已经8M, 相差了80倍, 对于x$ktfbue表当没有统计信息时,默认的统计信息应该是100,000 rows.

View:   X$KTFBUE

Desc.:     [K]ernel [T]ablespace [F]ile [B]itmapped     [U]sed [E]xtents

查看该FIXED TABLE是否有统计信息

SQL> col owner for a30
SQL> col table_name for a30
SQL> select owner,table_name,object_type,NUM_ROWS,BLOCKS,LAST_ANALYZED from dba_tab_statistics where  table_name='X$KTFBUE';

OWNER                          TABLE_NAME                     OBJECT_TYPE    NUM_ROWS     BLOCKS LAST_ANAL
------------------------------ ------------------------------ ------------ ---------- ---------- ---------
SYS                            X$KTFBUE                       FIXED TABLE

Note:
可以看到X$ktfbue无统计信息,下面尝试使用GATHER_FIXED_OBJECTS_STATS。

SQL>  exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

PL/SQL procedure successfully completed.

Elapsed: 00:01:53.92
SQL> select owner,table_name,object_type,NUM_ROWS,BLOCKS,LAST_ANALYZED from dba_tab_statistics where  table_name='X$KTFBUE';

OWNER                          TABLE_NAME                     OBJECT_TYPE    NUM_ROWS     BLOCKS LAST_ANAL
------------------------------ ------------------------------ ------------ ---------- ---------- ---------
SYS                            X$KTFBUE                       FIXED TABLE

SQL> SELECT count(*),count(last_analyzed),sum(decode(last_analyzed,null,1,0)) FROM DBA_TAB_STATISTICS where OBJECT_TYPE='FIXED TABLE';

  COUNT(*) COUNT(LAST_ANALYZED) SUM(DECODE(LAST_ANALYZED,NULL,1,0))
---------- -------------------- -----------------------------------
      1335                 1180                                 155

Note:
其实可以看到使用DBMS_STATS.GATHER_FIXED_OBJECTS_STATS收集成功后,仍旧有很多FIXED TABLE无统计信息,包含本次出错的X$KTFBUE, 是否非常有趣?其实在MOS note ID 1355608.1 中有记录, 这些FIXED TABLE没有收集统计的原因是因为开发人员在oracle的代码级标注,忽略这些table的统计信息收集,因为他们认为对于一些FIXED TABLE不收集统计信息会更好。

这时如果想收集fixed table统计信息的方法是

SQL> EXEC DBMS_STATS.gather_table_stats('SYS','X$KTFBUE');

PL/SQL procedure successfully completed.

Elapsed: 00:00:03.70
SQL> select owner,table_name,object_type,NUM_ROWS,BLOCKS,LAST_ANALYZED from dba_tab_statistics where  table_name='X$KTFBUE';

OWNER                          TABLE_NAME                     OBJECT_TYPE    NUM_ROWS     BLOCKS LAST_ANAL
------------------------------ ------------------------------ ------------ ---------- ---------- ---------
SYS                            X$KTFBUE                       FIXED TABLE        3839            17-MAR-19

SQL> @df

TABLESPACE_NAME                   TotalMB     UsedMB     FreeMB % Used Ext Used
------------------------------ ---------- ---------- ---------- ------ --- ----------------------
DBFSTS                              30720          1      30719     1% NO  |#                   |
...
26 rows selected.

Elapsed: 00:00:04.13

-- execute plan --
|  86 |         NESTED LOOPS                          |                           |     8 |   576 |    39   (0)| 00:00:01 |        |      |            |
|  87 |          NESTED LOOPS                         |                           |    56 |  3640 |    39   (0)| 00:00:01 |        |      |            |
|  88 |           NESTED LOOPS                        |                           |    56 |  2464 |    39   (0)| 00:00:01 |        |      |            |
|* 89 |            TABLE ACCESS FULL                  | TS$                       |    25 |   775 |     9   (0)| 00:00:01 |        |      |            |
|  90 |            TABLE ACCESS BY INDEX ROWID BATCHED| RECYCLEBIN$               |     2 |    26 |     2   (0)| 00:00:01 |        |      |            |
|* 91 |             INDEX RANGE SCAN                  | RECYCLEBIN$_TS            |    11 |       |     1   (0)| 00:00:01 |        |      |            |
|* 92 |           FIXED TABLE FIXED INDEX             | X$KTFBUE (ind:1)          |     1 |    21 |     0   (0)| 00:00:01 |        |      |            |
|* 93 |          INDEX UNIQUE SCAN                    | I_FILE2                   |     1 |     7 |     0   (0)| 00:00:01 |        |      |            |

Note:
在收集X$KTFBUE的统计信息以后,, 执行计划有原来的FIXED FULL TABLE变成了FIXED TABLE FIXED INDEX,现在4秒钟就可以返回数据。问题得到解决,其实在11G r2时当查询dba_extents也会基于这个TABLE同样有可能面对这个问题,使用DBMS_STATS.gather_table_stats(‘SYS’,’X$KTFBUE’)收集这类被忽略的FIXED TABLE.

打赏

,

对不起,这篇文章暂时关闭评论。