SQL> set autotrace traceonly statistics;
SQL> insert into big_table_dir_test1 select * from big_table_dir_test; 2853792 rows created. Statistics
----------------------------------------------------------
148 recursive calls
358348 db block gets
111261 consistent gets
2 physical reads
333542568 redo size
832 bytes sent via SQL*Net to client
817 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
2853792 rows processed SQL> commit; Commit complete. SQL> select f.owner,f.object_name,f.data_object_id,count(1),max(f.data_object_id),min(f.object_id) from big_table_dir_test1 f
group by f.owner,f.object_name,f.data_object_id; 2 87653 rows selected. Statistics
----------------------------------------------------------
7 recursive calls
1 db block gets
41034 consistent gets
0 physical reads -- 传统路径insert只写buffer cache, redo保证重做
176 redo size
4428645 bytes sent via SQL*Net to client
64793 bytes received via SQL*Net from client
5845 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
87653 rows processed SQL> truncate table big_table_dir_test1; Table truncated.
SQL> insert /*+ append nologging */ into big_table_dir_test1 select * from big_table_dir_test;

2853792 rows created.

Statistics
----------------------------------------------------------
228 recursive calls
44268 db block gets
42998 consistent gets
2 physical reads
376672 redo size
827 bytes sent via SQL*Net to client
841 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
2853792 rows processed SQL> SQL> commit; Commit complete. SQL> select f.owner,f.object_name,f.data_object_id,count(1),max(f.data_object_id),min(f.object_id) from big_table_dir_test1 f
group by f.owner,f.object_name,f.data_object_id;
2 87653 rows selected. Statistics
----------------------------------------------------------
5 recursive calls
1 db block gets
40831 consistent gets
40752 physical reads --直接路径插入后,不经过buffer cache
168 redo size
4413020 bytes sent via SQL*Net to client
64793 bytes received via SQL*Net from client
5845 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
87653 rows processed SQL> SQL> / 87653 rows selected. Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
40766 consistent gets
0 physical reads
0 redo size
4310178 bytes sent via SQL*Net to client
64793 bytes received via SQL*Net from client
5845 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
87653 rows processed
SQL> truncate table big_table_dir_test1;

Table truncated.

Elapsed: 00:00:00.62
SQL>
SQL> alter session enable parallel dml; Session altered. Elapsed: 00:00:00.00
SQL> SQL> insert /*+ parallel(c,4) */ into big_table_dir_test1 c select * from big_table_dir_test; 2853792 rows created. Elapsed: 00:00:03.69 Statistics
----------------------------------------------------------
13 recursive calls
2574 db block gets
43108 consistent gets
0 physical reads
119108 redo size -- insert中的parallel导致走了直接路径加载
830 bytes sent via SQL*Net to client
840 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
2853792 rows processed SQL> commit; Commit complete.
SQL> select f.owner,f.object_name,f.data_object_id,count(1),max(f.data_object_id),min(f.object_id) from big_table_dir_test1 f
group by f.owner,f.object_name,f.data_object_id; 2 87653 rows selected. Elapsed: 00:00:03.33 Statistics
----------------------------------------------------------
5 recursive calls
1 db block gets
40896 consistent gets
40752 physical reads -- 没有写buffer cache
168 redo size
4470876 bytes sent via SQL*Net to client
64793 bytes received via SQL*Net from client
5845 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
87653 rows processed
SQL> truncate table big_table_dir_test1;

insert into big_table_dir_test1 select /*+ parallel(b 4) */ * from big_table_dir_test b;
Table truncated. Elapsed: 00:00:00.05
SQL> SQL> 2853792 rows created. Elapsed: 00:00:04.66 Statistics
----------------------------------------------------------
139 recursive calls
358365 db block gets
110606 consistent gets
2 physical reads
333527468 redo size
846 bytes sent via SQL*Net to client
840 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
2853792 rows processed SQL> select /*+ parallel(4) */f.owner,f.object_name,f.data_object_id,count(1),max(f.data_object_id),min(f.object_id) from big_table_dir_test1 f
group by f.owner,f.object_name,f.data_object_id; 2 87653 rows selected. Elapsed: 00:00:02.07 Statistics
----------------------------------------------------------
38 recursive calls
1 db block gets
41750 consistent gets
0 physical reads -- parallel走了buffer cache
176 redo size
4557551 bytes sent via SQL*Net to client
64793 bytes received via SQL*Net from client
5845 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
87653 rows processed

目前暂时无法做到直接路径加载同时满足不生成redo,同时又写一份到buffer cache,这只能依赖于操作系统缓存,但是过多的并发append会导Disk file operations I/O致等待事件。

This event is used to wait for disk file operations (for example, open, close, seek, and resize). It is also used for miscellaneous I/O operations such as block dumps and password file accesses.

Wait Time: The wait time is the actual time it takes to do the I/O

Parameter

Description

FileOperation

Type of file operation

fileno

File identification number

filetype

Type of file (for example, log file, data file, and so on)

我们知道操作系统在操作文件的时候,需要打开文件、关闭文件、定位文件位置等,当这些操作在进行的时候,Oracle就处于等待状态。

操作系统的这些文件操作可以划分如下:

1.file creation
2 file open
3 file resize
4 file deletion
5 file close
6 wait for all aio requests to finish
7 write verification
8 wait for miscellaneous io (ftp, block dump, passwd file)
9 read from snapshot files

oracle insert、append、parallel、随后查询的redo与磁盘读写的更多相关文章

  1. Oracle insert /*+ APPEND */原理解析

    https://blog.csdn.net/xiaobluesky/article/details/50494101 关于insert /*+ append */我们需要注意以下三点: a.非归档模式 ...

  2. Oracle NoLogging Append 方式减少批量insert的redo_size

    业务处理中,很多时候使用实表临时表处理中间结果,而实表的Insert操作缺省会记录redo log,针对此问题收集相关测试总结信息如下: [转] 常见dml.ddl语句使用nologging选项所生成 ...

  3. 关于insert /*+ append*/ 各种insert插入速度比较

    来源于:http://www.cnblogs.com/rootq/archive/2009/02/11/1388043.html SQL> select count(*) from t;COUN ...

  4. insert /*+APPEND*/ 各种insert 插入速度比较

    SQL> select count(*) from t;COUNT(*)----------5442048****************************SQL> alter ta ...

  5. 快速向表中插入大量数据Oracle中append与Nologging

    来源于:http://blog.sina.com.cn/s/blog_61cd89f60102e7gi.html 当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候 ...

  6. Oracle中append与Nologging

    快速向表中插入大量数据Oracle中append与Nologging 2017-05-05 / VIEWS: 304 来源于:http://blog.sina.com.cn/s/blog_61cd89 ...

  7. Oracle ROWNUM用法和分页查询总结(转)

    [转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278 ...

  8. Oracle DBA 必须掌握的 查询脚本:

    Oracle  DBA 必须掌握的 查询脚本: 0:启动与关闭 orcle 数据库的启动与关闭 1:连接数据库 2:数据库开启状态的实现步骤:       2-1:启动数据库           2- ...

  9. Oracle ROWNUM用法和分页查询总结

    **************************************************************************************************** ...

随机推荐

  1. C# 鼠标移动Winform窗体内或者panel容器内的控件 显示虚线/实现虚线框来确定位置

    C# 鼠标移动WinForm窗体或者panel容器内的控件 移动虚线/实现虚线框来确定位置 1.用到的方法介绍 今天,根据领导指示指导移动容器内的控件,生成虚线框,使用 ControlPaint.Dr ...

  2. F - Currency Exchange

    来源poj1860 everal currency exchange points are working in our city. Let us suppose that each point sp ...

  3. 用dx生成dex时遇到class name does not match path

    前言 用dx生成dex时遇到class name (Hello) does not match path这个问题还弄了挺久,这里就简单的记录一下. 步骤 首先是dx工具是在Android的SDK里面的 ...

  4. QT上位机

    程序是用QT写的,通过COM口进行数据的读取. 源码地址:https://github.com/kunkunlin/QT-SWJ

  5. js获取当前日期方法(YYYY-MM-DD格式)

      var myDate = new Date(); var time = myDate.toLocaleDateString().split('/').join('-');将1970/08/08转化 ...

  6. Wooden Sticks---(贪心)

    Problem Description There is a pile of n wooden sticks. The length and weight of each stick are know ...

  7. 关于c++中前++后++运算符重载问题

    #include<iostream> using namespace std; class Complex{ public: Complex(int a,int b){ this-> ...

  8. ubuntu下安装go环境

    1.官网下载go语言安装包 地址:https://studygolang.com/dl 2.服务器上安装go 将下载下来的安装包解压到/usr/local下 tar xf go1.12.1.linux ...

  9. 剑指offer——python【第16题】合并两个有序链表

    题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...

  10. JQuery each遍历A标签获取href 和 里面指定的值

    JQuery each遍历A标签获取href $('.scol_subject').each(function(){ var href = $(this).attr('href'); $(this). ...