Global temporary table之统计信息

来源:互联网 发布:数据画像 编辑:程序博客网 时间:2024/05/01 12:38

临时表是:应用中需要存储一个行集由一个会话或者事务(不夸session)时使用.

1、临时表创建时不分配初始extent,只在运行时才在当前用户的temporary tablespace中分配存储空间。

2、DDL有昂贵的代价,一次创建临时表,为db中每个存储过程都使用。

3、由于优化器无法直接获得临时表的统计信息,故使用CBO时有如下几种方法:

       a、动态采样dynamic_sample

            j加hint,其中2代表level2,比9i默认级别取更多样本/*dynamic_sample(temporary_tab_name 2) */

      b、exec dbms_stats.gather_schema_stats(user,gather_temp=>true);

            on commit preserve rows有效;on commit delete rows型的临时表无效。

      c、人工将统计信息写入并锁定:

          exec dbms_stats.set_table_stats(ownname,tabname,numrows,numblks,avgrlen);

          exec dbms_stats.lock_table_stats(ownname => ,tabname => ,stattype => );

原创粉丝点击