Differences between a transaction-based temporary Oracle table under 11 GB and 12C
The transaction-based temporary tables in Oracle differ from those in 11g and 12C. After collecting statistics on the temporary tables, the former records are cleared, and the latter does not, this is an important difference. 12C is used in the company environment, and 11 GB is used at the site. Using temporary tables will slow down time and time. I have posted. The solution is to create a temporary table based on the session and truncate the table after each use. Otherwise, a problem may occur.
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.0 Production 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;
-- Transaction-based temporary table
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.0 Production
TNS for Linux: Version 11.2.0.1.0-Production
NLSRTL Version 11.2.0.1.0-Production
SQL> drop table test purge;
-- Transaction-based temporary table
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