`
chinapkw
  • 浏览: 110911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

男人oracle,sql loader 及 快速生成大量数据

阅读更多

要测试sql loader 以及快速产生大量测试数据

生成大量测试数据思路。

  一,用plsql developer 生成csv 文件

  二,用>>输出重定向,追加到一个cvs 文件里。

  三,再用sql loader 快速载入。

 

在plsql developer 执行

SELECT object_id,object_name FROM dba_objects;

 

右键plsql developer 导出csv 格式 1.csv。在linux 上执行下面的脚本

#!/bin/bash

for((i=1;i<200;i=i+1))
do
        cat 1.csv >> 2.csv;
        echo $i;
done

 这样 50000  *  200 差不到就有一千万的数据了。我测试的  11047500  392M

 可以用:

wc -l 2.csv

 

查看csv 里有多少条数据。现在测试数据有了。我们来试一下sql loader 的载入效果吧。

创建sqlloader 控制文件如下,保存为1.ctl

load data
infile '2.csv'
into table my_objects
fields terminated by ','optionally enclosed by '"'
(object_id,
object_name
);

 

控制文件简要说明:

-- INFILE 'n.csv'   导入多个文件 
-- INFILE *  要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容

--BADFILE '1.bad'   指定坏文件地址 

--apend into table my_objects 追加
-- INSERT  装载空表 如果原先的表有数据 sqlloader会停止 默认值 
-- REPLACE   原先的表有数据 原先的数据会全部删除 
-- TRUNCATE  指定的内容和replace的相同 会用truncate语句删除现存数据 

--可以指定位置加载
--(object_id position(1:3) char,object_name position(5:7) char)
--分别指定分隔符
--(object_id char terminated by ",", object_name char terminated by ",")
--执行sqlldr userid=scott/a123 control=1.ctl log=1.out direct=true
--30秒可以载入200万的测试数据 79MB


--sqlldr userid=/ control=result1.ctl direct=true parallel=true
--sqlldr userid=/ control=result2.ctl direct=true parallel=true
--sqlldr userid=/ control=result2.ctl direct=true parallel=true
--当加载大量数据时(大约超过10GB),最好抑制日志的产生:
--SQLALTER TABLE RESULTXT nologging;
--这样不产生REDO LOG,可以提高效率。然后在CONTROL文件中load data上面加一行:unrecoverable
--此选项必须要与DIRECT共同应用。
--在并发操作时,ORACLE声称可以达到每小时处理100GB数据的能力!其实,估计能到1-10G就算不错了,开始可用结构
--相同的文件,但只有少量数据,成功后开始加载大量数据,这样可以避免时间的浪费

 

下面就是执行了

sqlldr userid=scott/a123 control=1.ctl log=1.out direct=true

 结果:30秒可以载入200万的测试数据 79MB
          226秒载入1100万的测试数据 392Mb

 

我的环境是在虚拟机,测得的结果

MemTotal:       949948 kB

model name      : Intel(R) Pentium(R) D CPU 2.80GHz
stepping        : 8
cpu MHz         : 2799.560
cache size      : 1024 KB

 

还是挺快的:)

1
0
分享到:
评论

相关推荐

    SQL loader and oracle sql study

    在IT领域,数据库管理和数据加载是至关重要的任务,SQL Loader(也称为Oracle SQL*Loader)是Oracle数据库系统中用于快速批量导入大量数据到数据库表的一个强大工具。这篇博客"SQL loader and oracle sql study"深入...

    sqlloader 第二部分318页开始

    1. 高效率:Sqlloader 可以快速加载大量数据。 2. 灵活性:Sqlloader 可以处理各种格式的数据文件。 3. 可靠性:Sqlloader 可以确保数据的一致性和正确性。 Sqlloader 的限制包括: 1. 依赖 Oracle 数据库:Sql...

    oracle sqlloader使用指南.doc

    Oracle SQL*Loader是Oracle数据库系统提供的一个强大工具,用于快速高效地从外部数据文件批量导入数据到数据库中。它的灵活性和可配置性使得用户可以根据不同的数据格式和需求进行定制化的数据加载。 首先,使用SQL...

    DataPump和SqlLoader

    SqlLoader 是另一种 Oracle 数据加载工具,主要用于批量加载大量数据到数据库中。与 DataPump 不同,SqlLoader 主要处理结构化数据文件,通过控制文件定义数据格式和加载规则。控制文件中包含了关于如何解析数据文件...

    sqlloader入门

    SQL*Loader是Oracle数据库系统提供的一种高效的数据加载工具,它能够快速地将结构化文本数据文件导入到数据库中。在大型数据仓库应用中,SQL*Loader因其直接路径和并行加载功能而备受青睐,这些特性使得它在大量数据...

    通过sqlloader将csv中文件写入数据库中

    `SQL*Loader`是Oracle数据库提供的一款强大的工具,用于快速地将大量数据加载到数据库中。本教程将详细介绍如何利用`SQL*Loader`将CSV(逗号分隔值)文件中的数据高效地写入数据库中,适合初学者学习。 首先,我们...

    使用SQL*Loader将dBASE数据转储到ORACLE数据库.pdf

    SQL*Loader是Oracle数据库提供的一种高效的数据加载工具,用于将外部数据文件中的数据批量导入到Oracle数据库的表中。在本篇文章中,我们将探讨如何使用SQL*Loader将dBASE数据库的数据转储到Oracle数据库。 首先,...

    SQL_LOADER例子

    SQL_LOADER,也被称为SQL*Loader,是Oracle数据库系统中用于快速批量导入大量数据到数据库的一个强大工具。它可以从各种格式的外部数据文件中加载数据,例如文本文件、CSV文件等,大大提高了数据导入的效率。这个...

    SQLLOADER

    - **数据迁移**:在数据库迁移过程中,使用 SQLLoader 快速迁移大量数据。 - **数据导入**:定期从外部文件导入数据到数据库中。 - **批量更新**:批量更新数据库中的数据。 - **数据备份恢复**:在数据备份与恢复...

    sqlloader使用教程

    SQL*Loader作为Oracle数据库管理系统的重要组成部分,专门用于将数据从外部文件批量加载到现有Oracle表中。它最初在Oracle版本5时仅限于CMS和部分PC系统,但随着Oracle的迭代更新,SQL*Loader的功能得到了显著增强,...

    Oracle创造测试数据

    4. **SQL*Loader**:Oracle的批量数据加载工具,可以从文本文件中快速导入大量数据。 5. **第三方工具**:如Data Generator for Oracle,可以生成符合特定模式的大量数据,包括模拟日期、字符串、数字等。 测试数据...

    OracleLoader

    Oracle Loader,作为Oracle数据库系统中的一个强大工具,主要用于高效地导入和导出大量数据,显著提高了ETL(Extract, Transform, Load)流程的性能。它提供了丰富的自定义选项,使得数据库开发人员和ETL工程师能够...

    如何通过txt文件批量导入数据到oracle数据库

    SQL*Loader可以从外部文件(如TXT文件)中快速地将数据加载到数据库表中。我们需要编写一个控制文件(.ctl文件),它定义了如何解析TXT文件和如何将数据插入到数据库表中。 4. **编写控制文件**:控制文件包含了...

    Oracle 数据导入工具

    在Oracle环境中,SQL*Loader是这样一个强大的工具,它允许用户快速地从外部数据文件批量导入数据,而无需编写复杂的PL/SQL代码或使用常规的INSERT语句。本篇文章将深入探讨SQL*Loader的工作原理、使用方法以及如何...

    用Pl*SQL将Excel中数据导入到oracle中,将oracle的数据通过Pl*SQL导向Excel

    标题中的“用PL/SQL将Excel中数据导入到Oracle中,将Oracle的数据通过PL/SQL导向Excel”涉及到了两个主要的数据库操作流程:数据的导入(Import)和导出(Export)。这里主要介绍如何利用PL/SQL Developer这款工具...

    Oracle SQL Developer

    9. 导入导出数据:通过Data Pump或传统的SQL*Loader方式,SQL Developer能够方便地导入导出大量数据,这对于数据迁移、备份和恢复来说非常实用。 10. 用户界面定制:根据个人喜好和工作需求,用户可以自定义工作区...

    用C++ 产生 SQLLoader 各类文件

    - 完成CREATE TABLE语句的执行后,使用生成的SQL*Loader控制文件,通过运行SQL*Loader命令行工具,将dbf文件中的数据批量加载到Oracle表中。这一步骤极大地提高了数据迁移的效率,尤其是处理大量数据时。 通过这种...

    oracle 数据库表生成器

    这个过程可能使用了Oracle的SQL*Loader或PL/SQL编程,通过批量加载数据或者编写自定义脚本来实现。此外,也可能利用了Oracle的XMLDB特性,它提供了对XML文档的原生支持,可以直接存储和查询XML数据。 数据导入导出...

    SqlLoader实用教程(基础入门)

    ### SQLLoader实用教程知识点详解 ...对于初学者来说,了解这些基本参数及其用途是非常重要的,这有助于更高效地利用SQLLoader进行数据处理。当然,随着经验的积累,还可以进一步探索更多高级特性和优化方法。

    sqlserver2005和oracle之间的导入导出

    - 如果数据是以CSV或其他文本格式导出的,则可以使用Oracle的`SQL*Loader`工具来导入数据。 #### 注意事项 - 在进行数据迁移之前,确保源数据库和目标数据库之间的兼容性问题得到解决,比如数据类型不匹配等问题...

Global site tag (gtag.js) - Google Analytics