Global temporary table之统计信息

临时表是:应用中需要存储一个行集由一个会话或者事务(不夸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 => );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值