INsert append vs nologging

将表设置为 nologging, 能提高insert速度,是因为产生的Redo最少

在归档模式下,将表调整为NOLOGGING,产生的redo量是最少的!

NOLOGGING的局限在于,如果数据设置了FORCELOGGING,那么表上的属性就会被忽略。例如DG主库上应用了FORCELOGGING MODLE。但是在Oracle 12c Release 2 有了新的FEATURE,或许可以支持 但是没有用过。

 

Introduction to Direct-Load INSERT

Direct-load INSERT enhances performance during insert operations by formatting and writing data directly into Oracle datafiles, without using the buffer cache. This functionality is similar to that of the Direct Loader utility (SQL*Loader).

Direct-load INSERT appends the inserted data after existing data in a table; free space within the existing data is not reused. Data can be inserted into partitioned or nonpartitioned tables, either in parallel or serially.

 

check force logging

select force_logging from gv$database

https://danischnider.wordpress.com/2018/02/20/direct-path-insert-and-nologging-with-oracle-12-2/

https://recurrentnull.wordpress.com/2013/06/30/direct-path-nologging-ctas-and-gtt-a-comparison-of-undo-and-redo-generated/

for temporary table 

https://www.cnblogs.com/zmlctt/p/3747443.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle中的"append nologging"是一种数据插入方式,它可以在插入数据时不写入日志文件,从而提高数据插入的效率。但是,这种方式也会带来一定的风险,因为如果系统崩溃或出现故障,这些未记录的数据将无法恢复。因此,在使用"append nologging"时需要谨慎考虑,并根据具体情况进行选择。 ### 回答2: 在Oracle数据库中,"append nologging"是一个用于插入数据的选项。当我们使用这个选项时,会告知Oracle不要将数据更改记录的日志信息写入日志文件中。 使用"append nologging"选项有以下几个优点: 1. 提高插入性能:由于不需要将每个插入操作的详细信息写入日志文件,可以大大减少写操作对性能的影响。这对于大批量数据插入操作特别有效,可以显著提高插入速度。 2. 减少日志文件大小:由于没有记录每个插入操作的日志,可以减少日志文件的大小。这对于需要保留日志一段时间的数据库来说,可以显著减少存储空间的使用。 3. 简化恢复过程:由于没有详细的插入操作日志,恢复过程可以更简单。在某些情况下,可以通过简单的回滚操作来还原数据。 然而,使用"append nologging"选项也存在一些风险和限制: 1. 不能进行点恢复:由于没有详细的插入操作日志,当发生故障时无法进行点恢复。如果需要恢复到插入操作之前的状态,只能进行完全恢复。 2. 必须小心使用:"append nologging"选项要谨慎使用,必须仔细评估数据的重要性和对插入操作的恢复需求。如果数据丢失将会造成严重问题,应该避免使用此选项。 3. 仅适用于插入操作:"append nologging"选项只适用于插入操作,对其他数据操作(如更新和删除)无效。 总之,"append nologging"选项是Oracle数据库中一个能够提高插入性能和减少存储空间使用的选项,但使用时需要注意数据的重要性和对插入操作的恢复需求。 ### 回答3: 在Oracle数据库中,"append nologging"是一种表级别的选项,用于指定在数据插入操作中不生成任何日志信息。通过使用"append nologging"选项,可以提高数据插入的性能。 当我们执行插入操作时,默认情况下,Oracle会将插入的数据写入日志文件中,以确保数据的持久性和安全性。然而,对于一些大规模的数据插入操作,特别是对于临时或者不重要的数据,生成日志文件可能会成为性能瓶颈。这时,我们可以选择使用"append nologging"选项,该选项会禁止生成日志文件,从而提高插入操作的性能。 使用"append nologging"选项需要谨慎,因为它可能会导致数据丢失的风险。由于没有生成日志文件,一旦系统发生故障或者崩溃,这些没有被记录的数据将无法恢复。因此,在使用"append nologging"选项时,需要确保数据的重要性和可恢复性,并做好相应的数据备份和恢复策略。 可以通过以下语法在Oracle中使用"append nologging"选项: ``` INSERT /*+ APPEND NOLOGGING */ INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); ``` 在上述语句中,通过在INSERT语句中添加"/*+ APPEND NOLOGGING */"注释来启用"append nologging"选项。然后,我们可以指定要插入的表名和对应的列和值。 需要注意的是,使用"append nologging"选项并不会对查询和更新操作产生影响。它只适用于插入操作,并且仅在一些特定的情况下才建议使用,例如临时表、快速数据装载等。 总之,"append nologging"是Oracle数据库中的一个选项,用于指定在数据插入操作中不生成任何日志信息,从而提高插入操作的性能。但是,需要谨慎使用,并做好相应的数据备份和恢复策略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值