oracle 基于事务的临时表在11g和12c下,可以看到收集临时表的统计信息后,前者记录被清空,后者没有,这是个很重要的区别。在公司
oracle 基于事务的临时表在11g和12c下,可以看到收集临时表的统计信息后,前者记录被清空,后者没有,这是个很重要的区别。在公司环境上用的是12c,在现场用的是11g,使用临时表会造成时快时慢,之前我有帖子,用了hint之后,也不是特别好,于是直接采集,结果临时表被清空。解决的方法是:建基于session的临时表,且每次用完之后要truncate,,要不然,会有问题。
sql> select * from v$version;
banner con_id
-------------------------------------------------------------------------------- ----------
oracle database 12c enterprise edition release 12.1.0.1.0 - 64bit production 0
pl/sql release 12.1.0.1.0 - production 0
core 12.1.0.1.0production 0
tns for linux: version 12.1.0.1.0 - production 0
nlsrtl version 12.1.0.1.0 - production 0
sql> drop table test purge;
--基于事务的临时表
sql> create global temporary table test
(
id number
)
on commit delete rows;
sql> insert into test select object_id from dba_objects;
99412 rows inserted
sql> select count(1) from test;
count(1)
----------
99412
sql> exec dbms_stats.gather_table_stats(user,'test');
sql> select count(1) from test;
count(1)
----------
99412
sql> select * from v$version;
banner
--------------------------------------------------------------------------------
oracle database 11g enterprise edition release 11.2.0.1.0 - 64bit production
pl/sql release 11.2.0.1.0 - production
core 11.2.0.1.0production
tns for linux: version 11.2.0.1.0 - production
nlsrtl version 11.2.0.1.0 - production
sql> drop table test purge;
--基于事务的临时表
sql> create global temporary table test
(
id number
)
on commit delete rows;
sql> insert into test select object_id from dba_objects;
70379 rows inserted
sql> select count(1) from test;
count(1)
----------
70379
sql> exec dbms_stats.gather_table_stats(user,'test');
sql> select count(1) from test;
count(1)
----------
0
在centos 6.4下安装oracle 11gr2(x64)
oracle 11gr2 在vmware虚拟机中安装步骤
debian 下 安装 oracle 11g xe r2
本文永久更新链接地址: