- 浏览: 1023015 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
往临时表里插入相同量的数据比普通heap表少产生很多redo。
SQL> create table t_heap tablespace users as select * from dba_objects where 1=2;
Table created.
SQL> create global temporary table t_temp on commit preserve rows as select * from dba_objects where 1=2;
Table created.
SQL> select a.name,b.value,b.sid from v$statname a ,v$sesstat b where a.STATISTIC# in (133,134)
2 and a.STATISTIC#=b.STATISTIC# and b.sid=(select distinct sid from v$mystat);
NAME VALUE SID
------------------------------ ---------- ----------
redo entries 140 138
redo size 35552 138
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> insert into t_heap select * from dba_objects;
11376 rows created.
SQL> commit;
Commit complete.
SQL> select a.name,b.value,b.sid from v$statname a ,v$sesstat b where a.STATISTIC# in (133,134)
2 and a.STATISTIC#=b.STATISTIC# and b.sid=(select distinct sid from v$mystat);
NAME VALUE SID
------------------------------ ---------- ----------
redo entries 8493 138
redo size 11837876 138
SQL> select 11837876 - 35552 from dual;
11837876-35552
--------------
11802324
--在普通表里插入113760条数据产生的日志是11802324字节的日志
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
SQL> select a.name,b.value,b.sid from v$statname a ,v$sesstat b where a.STATISTIC# in (133,134)
2 and a.STATISTIC#=b.STATISTIC# and b.sid=(select distinct sid from v$mystat);
NAME VALUE SID
------------------------------ ---------- ----------
redo entries 8493 138
redo size 11837876 138
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> insert into t_temp select * from dba_objects;
11376 rows created.
SQL> commit;
Commit complete.
SQL> select a.name,b.value,b.sid from v$statname a ,v$sesstat b where a.STATISTIC# in (133,134)
2 and a.STATISTIC#=b.STATISTIC# and b.sid=(select distinct sid from v$mystat);
NAME VALUE SID
------------------------------ ---------- ----------
redo entries 11157 138
redo size 12427444 138
SQL> select 12427444 - 11837876 from dual;
12427444-11837876
-----------------
589568
--在临时表里插入113760条数据产生的日志是589568字节的日志
SQL> select 11802324 - 589568 from dual;
11802324-589568
---------------
11212756
SQL> select (11802324 - 589568)/1024/1024 m from dual;
M
----------
10.6933174
结论:插入相同的数据量到普通表和临时表redo相差10m多...
SQL> select count(*) from t_heap;
COUNT(*)
----------
113760
SQL> select count(*) from t_temp;
COUNT(*)
----------
113760
SQL>
发表评论
-
sqlldr总结参数介绍
2012-06-28 14:29 22832有效的关键字: userid -- ORACLE use ... -
11gR2新特性:STANDBY_MAX_DATA_DELAY
2011-12-27 11:18 1221Active Data Guard 是 Oracle 11g ... -
Linux下用OCCI或OCI连接Oracle
2011-07-26 12:00 2907首先,去oracle官网下载C ... -
Oracle Mutex实现机制
2011-05-18 23:43 1072我们都知道Latch是Oracle ... -
local_listener参数作用
2011-05-10 17:19 1931pmon只会动态注册port等于1521的监听,否则 ... -
oracle伪列 rowid和rownum
2011-03-23 10:00 3540整理ROWID一 一,什么是伪列RowID?1,首先是一种数 ... -
Oracle10gR2 主备自动切换之客户端Failover配置
2011-01-20 10:32 9531. 主库检查和设置假设新增的服务名为ORCL_TAF.LK. ... -
Oracle10g配置Dataguard的相关参数解释
2011-01-20 10:24 1271参考自 http://space.itpub.ne ... -
wrap加密oracle包
2011-01-19 11:52 1298大家都知道oracle的很多系统包是没法看它的源码的,orac ... -
利用hcheck检查数据字典一致性状态
2011-01-17 17:42 1820利用hcheck可以检查oracle数据字典的一致性状态,主要 ... -
Database Link与GLOBAL_NAMES参数
2011-01-12 13:36 1032当GLOBAL_NAMES参数设置为TRUE时,使用DATAB ... -
Oracle Streams学习二(清除流配置)
2011-01-09 23:34 1182在完成streams部署之后,如果需要重新配置或舍弃配置,可以 ... -
red hat enterprise 下完全删除oracle 数据库
2011-01-05 01:28 1759步骤 1 以oracle用户登录主、备节点。步骤 2 ... -
Oracle常用dump命令
2010-12-20 00:31 834Oracle常用dump命令,记录一下备查。 一.M ... -
oracle执行DML(事物过程)的深入研究(二)
2010-12-14 15:02 1541接上一节的 oracle执行DML(事物过程)的深入研究(一) ... -
oracle执行DML(事物过程)的深入研究(一)
2010-12-14 10:26 2805用户所执行 DML (即执行事务)操作在 Oracle 内部按 ... -
Oracle基本数据类型存储格式研究(二)—数字类型
2010-12-14 00:35 1473数字类型包含number,intege ... -
Oracle基本数据类型存储格式研究(一)—字符类型
2010-12-13 23:32 11731.char char是定长字符型,内部代码是:96,最多可 ... -
关于oracle rowid的一些内容 -- 转载
2010-12-13 15:47 782本文讨论的是关于oracle ... -
oracle 进制转换
2010-12-13 14:24 12661.16进制转换为10进制 ...
相关推荐
临时表比正常表产生的 REDO 少得多,然而,由于临时表必须产生包含数据的 UNDO 信息,所以会产生一定数量的 REDO 日志。 DB2 中的临时表 在 DB2 中,临时表可以使用 DECLARE GLOBAL TEMPORARY TABLE 语句来定义。...
临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用了临时表,存放的是和本会话相关的数据,没有人会傻乎乎地用临时表来保存本应该共享的数据。 with子查询实际上也是用了临时表,...
当会话结束或事务结束时,Oracle执行`TRUNCATE`语句清除该会话的临时表数据,但这不会影响其他正在使用相同表的会话的数据。 由于临时表的数据变化不会生成重做日志(redo logs),从而减少了I/O操作和日志空间的...
在Oracle数据库系统中,临时表(Temporary Tables)是一种特殊类型的表,它主要用于存储在特定会话或事务期间产生的临时数据。这些数据在会话结束或事务提交或回滚时会被自动删除,从而提供了一种高效、安全的方式来...
在数据库管理领域,REDO RECORD是Oracle数据库系统中一个至关重要的概念,它涉及到事务的持久性和数据恢复。本文将深入探讨非IMU(In-Memory Update)模式下,一条UPDATE语句如何产生REDO RECORD,并结合日志打包的...
在实际生产环境下,有时需将超大规模数据(如超过2亿条)导入分区表,但因原表与目的分区表的字段不一致,且用Kettle等转换工具极易失败,而用insert into select t1,t2.. from tab的Oracle SQL方式直接执行将导致...
磁盘坏了,需要使用archived redo logs和online redo logs来恢复数据;truncate一个表或其他操作,需要使用REDO来恢复到之前的状态。 什么是UNDO? UNDO是为了撤销你做的操作,例如你执行了一个TRANSACTION,但是...
本文将深入探讨如何在Oracle环境中修改redo日志文件的大小,以及这一操作的具体步骤和注意事项。 ### 一、理解redo日志文件 在开始修改redo日志文件大小之前,首先需要了解redo日志文件的基本概念。redo日志文件是...
在IT领域,尤其是在数据库管理与恢复方面,遇到“丢失所有redo-数据文件-控制文件的恢复”这种情况无疑是一场灾难性的事件。这通常意味着数据库的所有关键组成部分:重做日志(redo log)、数据文件(datafiles)以及...
Redo日志(Redo Log)是数据库事务日志的重要组成部分,它主要用于事务的恢复和数据的一致性保证。在MySQL数据库中,InnoDB存储引擎使用Redo日志来记录事务性的操作,并通过日志缓冲区(Redo Log Buffer)来缓存Redo...
2. 索引优化的逐条插入:为提高导入速度,可以先不创建或临时删除表的索引,待所有数据导入后一次性重建。这样可以避免每次插入时更新索引的时间开销。但这种方法在表已有大量数据时不合适,因为重建索引会消耗大量...
TRUNCATE TABLE 语句可以快速地删除表中的所有数据,但是它只产生少量的 Undo 和 Redo。 1.5.1. 示例 以下是一个示例: ```sql CREATE TABLE test_table ( id NUMBER, name VARCHAR2(20) ); INSERT INTO test_...
- 应用程序接口:提供公共的AddCommand、Undo和Redo方法供其他部分调用。 6. **扩展性和性能考虑**: 框架应支持多种类型的命令,比如文本编辑、列表选择、绘图等。同时,为了防止内存消耗过大,可以设定撤销/...
在header部分,包含block编号、写入的数据长度、日志组的偏移量和检查点等信息。这种结构设计允许redo log在内存中进行高效的组织和管理,而后再批量写入磁盘。 当一条redo log生成时,它不会直接以单条的形式写入...
这两个功能允许用户撤销最近的操作(undo),或者恢复之前撤销的动作(redo),极大地提高了工作效率和数据安全。 `redo`和`undo`的实现通常基于命令模式(Command Pattern)设计模式。在这个模式中,每个操作被...
redo日志通常占用的空间很小,因为它们只记录必要的信息,如表空间号、数据页号和修改的字节偏移量及新值,而不是整个数据页的内容。 在系统崩溃恢复时,MySQL会根据redo日志重做事务,重新执行事务中的修改操作,...
所有的修改都被逻辑地取消,但是数据结构和数据库块本身在回滚后可能大不相同。 redo 和 Undo 的协作机制 redo 和 Undo 机制之间存在着紧密的协作关系。尽管 Undo 信息存储在 Undo 表空间或 Undo 段中,但也会受到...
MySQL数据库管理系统需要binlog、redo log和undo log三个重要的日志系统,以确保数据的一致性和持久性。下面是对这些日志系统的详细解释: 为什么需要分层设计 MySQL数据库系统采用分层设计,将Server层和存储引擎...