關於全域性臨時表DML特性案例體現
基於事務的全域性臨時表:create global temporary table t_temp_transaction as select * from user_objects where 4=2;
普通表:create table t_temp_transaction as select * from user_objects where 4=2;
全域性臨時表和普通表在插入資料方面的耗能差異實踐:
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
= sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
70 169 1744
SQL> insert into t_temp_transaction
2 select * from user_objects;
已建立20行。
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
= sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
70 169 2072
SQL> insert into t_normal
2 select * from user_objects;
已建立20行。
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
= sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
70 169 10740
由(2072-1744)和(10740-2072)的差異,可以看出全域性臨時表和普通表再insert方面的效能差異實在懸殊!
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
全域性臨時表兩種刪除資料方式的耗能差異實踐:
全域性臨時表的delete操作產生的日誌:
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 105868
SQL> delete from t_temp_transaction;
已刪除20480行。
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 5978580
可以看出:兩次日誌量的差異是: 5978580-105868=5872712
全域性臨時表的commit操作產生的日誌:
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 6293972
SQL> commit;
提交完成。
SQL> select count(*) from t_temp_transaction;
COUNT(*)
----------
0
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 6294096
可以看出:兩次日誌量的差異是:6294096-6293972=124
5872712和124相差多大,你們都看得見!!
普通表:create table t_temp_transaction as select * from user_objects where 4=2;
全域性臨時表和普通表在插入資料方面的耗能差異實踐:
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
= sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
70 169 1744
SQL> insert into t_temp_transaction
2 select * from user_objects;
已建立20行。
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
= sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
70 169 2072
SQL> insert into t_normal
2 select * from user_objects;
已建立20行。
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
= sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
70 169 10740
由(2072-1744)和(10740-2072)的差異,可以看出全域性臨時表和普通表再insert方面的效能差異實在懸殊!
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
全域性臨時表兩種刪除資料方式的耗能差異實踐:
全域性臨時表的delete操作產生的日誌:
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 105868
SQL> delete from t_temp_transaction;
已刪除20480行。
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 5978580
可以看出:兩次日誌量的差異是: 5978580-105868=5872712
全域性臨時表的commit操作產生的日誌:
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 6293972
SQL> commit;
提交完成。
SQL> select count(*) from t_temp_transaction;
COUNT(*)
----------
0
SQL> select SID ,ms.STATISTIC#,value "當前日誌量" from v$mystat ms,v$statname sn where ms.STATISTIC#
=sn.statistic# and name = 'redo size';
SID STATISTIC# 當前日誌量
---------- ---------- ----------
10 169 6294096
可以看出:兩次日誌量的差異是:6294096-6293972=124
5872712和124相差多大,你們都看得見!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1279572/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle全域性臨時表的特性Oracle
- 全域性臨時表
- Oracle全域性臨時表Oracle
- 全域性臨時表 GLOBAL TEMPORARY TABLE
- PostgreSQLOracle相容性之-全域性臨時表globaltemptableSQLOracle
- 全域性臨時表GTT的統計資訊收集辦法:
- orace global temporary table全域性臨時表測試小記
- mysql關於臨時表的總結MySql
- create table進階學習(二)_全域性臨時表_global temporary table
- 關於with 臨時表 as的一些用法
- 關於 oracle 臨時表 ORA-14452Oracle
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- oracle global temporary table全域性臨時表_測試及v$tempseg_usageOracle
- 關於全域性引入element uiUI
- 關於Oracle臨時表的使用的小經歷Oracle
- 關於主外來鍵關係DML父表和DML子表加鎖方式
- 利用SQL Server的全域性臨時表防止使用者重複登入 (轉)SQLServer
- MySQL8.0新特性-臨時表的改善MySql
- 關於排序、sort_area_size、臨時表空間(轉)排序
- mysql臨時表和記憶體表MySql記憶體
- 【基礎知識】基於事物的臨時表和基於會話的臨時表會話
- oracle臨時表空間相關Oracle
- MySQL Online DDL導致全域性鎖表案例分析MySql
- ORACLE臨時表和SQLSERVER臨時表異同OracleSQLServer
- Oracle 12c 新特性 - 臨時表undo(TEMP UNDO)Oracle
- 關於移動臨時表空間檔案位置的問題
- 實現elementUI表單的全域性驗證UI
- 建立基於事務和基於會話的臨時表及臨時表建索引的實驗會話索引
- 記憶體表和臨時表的區別記憶體
- MySQL-37:記憶體臨時表MySql記憶體
- MySQL臨時表MySql
- PostgreSQL:臨時表SQL
- oracle臨時表Oracle
- Oracle 臨時表Oracle
- 臨時表空間temporary tablespace相關操作
- 12C關於CDB、PDB 臨時temp表空間的總結
- 關於oracle with table as 建立臨時表的用法示例以及使用with as 的優點Oracle