`

Oracle nologging 的使用

 
阅读更多
--在archive log模式下,nologging针对以下操作可以有效减少redo size,但必须谨慎地使用这种模式
--因为操作不产生日志,若出现介质失败后,dba 无法完全地恢复数据库,必须谨慎小心使用nologging操作
--另外的测试,在NOARCHIVELOG 模式,nologging对create table是无效的,而对于create index还是能减少redo size
--NOLOGGING执行以下操作时可以执行
/*
*索引的创建和ALTER(重建)
*ISNERT APPEND,或者SQL*Loader直接路径加载。表数据不生成redo,但是表上的索引仍会生成redo
*LOB操作
*create table as 操作
*alter table 操作,比如move 和split
*/


--ctrs操作,产生redo size 5821728,采用nologging模式 产生了79500字节
--建索引,也可以指定nologging模式
admin@ORCL> CREATE OR REPLACE VIEW V_USER_REDO AS
  2  SELECT NAME,VALUE FROM V$MYSTAT CUR_STAT INNER JOIN V$STATNAME STATE_NAME ON
  3  CUR_STAT.STATISTIC# = STATE_NAME.STATISTIC#
  4  WHERE STATE_NAME.NAME = 'redo size';

视图已创建。

admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                             15428

admin@ORCL> create table t as select * from dba_objects;

表已创建。

admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5837156

--nologging模式
admin@ORCL> drop table t purge;

表已删除。

admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5862144

admin@ORCL> create table t nologging as select * from dba_objects;

表已创建。

admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5941644
--需要注意nologging 不能避免所有后续操作生成redo,除非特殊的sql*loader,insert /*+ append */ 语法的不生成日志。

admin@ORCL> SELECT LOGGING FROM DBA_TABLES WHERE TABLE_NAME = 'T' AND OWNER = 'ADMIN';

LOG
---
NO

--测试索引在nologging模式下的redo size
--普通模式产生 965136 字节redo
--nologging 模式创建的索引,产生的redo 为 56264字节

admin@ORCL> create table t as select * from dba_objects;

表已创建。

admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5849580

admin@ORCL> create index idx_t on t(object_id);

索引已创建。

admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           6814716

admin@ORCL> create index idx_t on t(object_id) nologging;

索引已创建。

--
admin@ORCL> select * from v_user_redo;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           6870980

--索引创建后,仍为nologging模式
admin@ORCL> SELECT LOGGING FROM DBA_INDEXES WHERE INDEX_NAME = 'IDX_T'
  2  ;

LOG
---
NO

 

分享到:
评论

相关推荐

    oracle nologging 总结

    oracle nologging全面总结,从数据库级别,对象以及表级别都有说明,以及在生产环境的影响,和及时止损的处理方法。

    oracle索引使用样例

    ### Oracle索引使用样例详解 #### 一、索引并行创建 在Oracle数据库中,并行创建索引可以显著提高创建索引的速度,尤其是在处理大量数据时。下面的SQL语句展示了如何并行创建一个索引: ```sql CREATE INDEX IDX_GD...

    oracle海量数据中提升创建索引的速度.docx

    "Oracle 海量数据中提升创建...为了提高 Oracle 海量数据中的创建索引速度,可以从多方面入手,包括使用 nologging 参数、parallel 并行参数、manual pga 模式等。同时,调整pga的参数和了解pga的工作机制也很重要。

    ORACLE自动内存管理和存储调整

    * 应用层面可考虑使用减少 REDO 量的写法(如:NOLOGGING)。 四、调整后的观察 调整后的观察是非常重要的,可以通过定期生成 AWR 报告,关注其中的内存命中率、等待事件等等,以决定是否需要进行相应调整。 ...

    Oracle在线建立超大表的索引

    - 减少RE的I/O:使用`NOLOGGING`子句创建索引,待索引创建完成后,再将其改为`LOGGING`。 4. **最大化I/O吞吐量**:利用`PARALLEL`子句提高并行度,这样可以避免阻塞INSERT/UPDATE操作。 #### 创建索引的具体步骤 ...

    oracle 常用的备份方式及备份策略

    EXP/IMP 逻辑备份可以跨版本使用,例如可以将 Oracle 11g 的备份文件导入到 Oracle 12c 中。 OS 备份 OS 备份是指备份操作系统文件,例如数据文件、日志文件等。 冷备份 冷备份是指数据库关闭时进行备份,冷备份...

    Oracle运维最佳实践-下.pdf 带书签

    - AWR是Oracle提供的一个用于收集和存储系统性能信息的工具,可以帮助运维人员了解系统的运行状态和资源使用情况。 - AWR报告提供了关于数据库实例性能的重要信息,包括等待事件统计、SQL执行统计等,是进行性能...

    2021 云和恩墨大讲堂PPT汇总(50份).zip

    Oracle Nologging全面总结 Oracle RAC 集群安装部署 Oracle RMAN 单实例异机迁移恢复(版本:11GR2) Oracle存储过程性能分析案例 Oracle技术加油站:快速处理紧急性能问题的工具与经验 Oracle诊断性能问题时常用...

    oracle开发

    - 使用nologging选项创建索引,以节省重做日志空间和提高效率。 6. **最佳实践**: - 使用`CREATE INDEX`语句创建索引,指定表空间、存储参数等。 - 创建基于函数的索引,如`UPPER`、`LOWER`等,以提高查询效率...

    oracle数据泵导入

    根据题目中的描述,这里详细介绍如何使用Oracle数据泵导入功能进行数据导入。 ##### 1. 创建表空间 首先,需要创建一个新的表空间用于存放即将导入的数据。在题目中给出的例子中,创建了一个名为`ABS`的表空间,其...

    Oracle数据库管理员指南-管理表-中文版.pdf Administrator's Guide Oracle Managing Tables

    此外,还需要考虑表的存储位置和是否使用并行创建表、NOLOGGING、表压缩等选项。 创建表之后,可以使用SQL语句或Oracle大容量装载实用程序来插入数据行。对于特定的列类型,如LOB、varray和嵌套表,它们存储在自己...

    ORACLE批量更新四种方法.txt ORACLE批量更新四种方法.txt

    alter table T3 nologging; insert /*+ APPEND */ into T3 select T1.* from T1, T2 where T1.ID = T2.ID; ``` **特点:** - **优点:**能够避免大量的undo段占用问题,适用于大规模数据更新。 - **缺点:**需要...

    Oracle常用的SQL语句维护

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其SQL语法是进行数据操作的基础。本文将深入探讨Oracle中常用的SQL语句以及与数据库表空间相关的维护知识。 首先,让我们了解如何在Oracle中创建表空间...

    ORACLE常用命令大全.

    create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m, 'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k [logging/nologging] default storage (initial 500k next ...

    Oracle插入大量数据

    `/*+Append*/`提示指示Oracle数据库使用追加模式执行插入操作,避免了行级锁定,加快了插入速度。此外,临时禁用表的日志记录(通过`ALTER TABLE ... NOLOGGING`),可以在大数据量的插入操作中显著降低日志写入的...

    Oracle10G数据备份

    - **LOGGING与NOLOGGING的操作**:区分表空间或表是否参与归档日志记录的过程。 - **DBVERIFY工具**:用于验证备份文件完整性的工具。 #### 四、RMAN备份 - **理解RMAN**:RMAN (Recovery Manager) 是Oracle提供的...

    PLSQL命令大全

    1. 创建表空间:使用`create tablespace ts_name datafile 'c:oracleoradatafile1.dbf' size 100m , 'c:oracleoradatafile2.dbf' size 100m minimum extent 550k [logging/nologging] default storage (init, ...);...

    \Oracle 表空间与数据文件

    [LOGGING | NOLOGGING] [FORCE LOGGING] [ONLINE | OFFLINE] [EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE size]] [SEGMENT SPACE MANAGEMENT (COMPACT | AUTO)]; ``` 其中,`tablespace_...

Global site tag (gtag.js) - Google Analytics