關於全域性臨時表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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQLOracle相容性之-全域性臨時表globaltemptableSQLOracle
- mysql關於臨時表的總結MySql
- 關於with 臨時表 as的一些用法
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- 關於全域性引入element uiUI
- MySQL8.0新特性-臨時表的改善MySql
- MySQL Online DDL導致全域性鎖表案例分析MySql
- oracle臨時表空間相關Oracle
- 實現elementUI表單的全域性驗證UI
- MySQL 全域性表和表鎖MySql
- MySQL-37:記憶體臨時表MySql記憶體
- 12C關於CDB、PDB 臨時temp表空間的總結
- PostgreSQL:臨時表SQL
- MySQL臨時表MySql
- 全域性鎖和表鎖
- 實現基於React的全域性提示元件ToastReact元件AST
- mysql 建立臨時表MySql
- MySQL之臨時表MySql
- 全域性鎖、表鎖、行鎖
- MySQL 全域性鎖和表鎖MySql
- Apache Hudi重磅特性解讀之全域性索引Apache索引
- 關於TornadoFx和Android的全域性配置工具類封裝實現及思路解析Android封裝
- 完美實現賬戶踢出時的全域性彈窗
- C#10新特性-全域性和隱式usingsC#
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- SQLServer臨時表的使用SQLServer
- MySQL 中的臨時表MySql
- oracle 臨時表的使用Oracle
- ORACLE臨時表總結Oracle
- 關於shiroFilter的全域性異常統一處理解決方案Filter
- 基於BIT陣列實現全域性功能開關陣列
- Idea全域性搜尋關鍵字Idea
- MySQL全域性鎖、表鎖以及行鎖MySql
- 表單驗證,為避免全域性汙染,少定義全域性變數寫法變數
- Oracle 臨時表 OracleDataAdapter 批次更新OracleAPT
- React - Context API 維護全域性狀態,實現全域性元件通訊ReactContextAPI元件
- Go方法特性詳解:簡單性和高效性的充分體現Go