您的位置:首页 > 其它

通过dbms_stats.set_table_stats手动设置临时表统计信息

2016-10-27 21:53 453 查看
--通过dbms_stats.set_table_stats手动设置临时表统计信息

EODA@PROD1> create global temporary table t ( x int, y varchar2(100) )
2  on commit preserve rows;  --创建基于事务的临时表

Table created.

EODA@PROD1>
EODA@PROD1> select table_name, num_rows, blocks, avg_row_len  --查看统计信息
2  from user_tables
3  where table_name = 'T';

TABLE_NAME			 NUM_ROWS     BLOCKS AVG_ROW_LEN
------------------------------ ---------- ---------- -----------
T

EODA@PROD1>
EODA@PROD1> begin
2  	  dbms_stats.set_table_stats( ownname => USER,  --手动设置
3  				      tabname => 'T',
4  				      numrows => 500,
5  				      numblks => 7,
6  				      avgrlen => 100 );
7  end;
8  /

PL/SQL procedure successfully completed.

EODA@PROD1>
EODA@PROD1> column table_name format a10
EODA@PROD1>
EODA@PROD1> select table_name, num_rows, blocks, avg_row_len
2  from user_tables
3  where table_name = 'T';

TABLE_NAME   NUM_ROWS	  BLOCKS AVG_ROW_LEN
---------- ---------- ---------- -----------
T		  500	       7	 100

EODA@PROD1>
EODA@PROD1> select table_name, temporary, duration from user_tables where table_name='T';

TABLE_NAME T DURATION
---------- - ---------------
T	   Y SYS$SESSION

EODA@PROD1> set autot traceonly
EODA@PROD1> select * from t;   --查看统计信息

no rows selected

Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873

--------------------------------------------------------------------------
| Id  | Operation	  | Name | Rows  | Bytes | Cost (%CPU)| Time	 |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |	 |   500 | 32500 |     4   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| T	 |   500 | 32500 |     4   (0)| 00:00:01 |
--------------------------------------------------------------------------

Statistics
----------------------------------------------------------
6  recursive calls
0  db block gets
4  consistent gets
0  physical reads
0  redo size
336  bytes sent via SQL*Net to client
408  bytes received via SQL*Net from client
1  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
0  rows processed
--参考来源《Oracle编程艺术深入理解数据库体系结构(第三版)》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息