当我们进行测试数据或者进行压力测试时候,需要几十万或者几百万条数据,我们可以用下面语句进行大批量插入,
10万条数据插入时间为7秒左右,100万条记录插入时间为65秒,200万插入为150秒。
declare
i integer ; --定义变量
begin
i := 1;
/* 插入数据 */
insert into test (student, username, password )values('01', 'lisi','123');
i := i + 1;
exit when i > 10000;--插入一万条数据
end loop;
commit;
参考:https://blog.csdn.net/iteye_17920/article/details/82334007
当我们进行测试数据或者进行某种大数据量的时候,可以用一下语句进行大批量插入,通过我的测试,10万条数据插入时间为7秒左右,100万条记录插入时间为65秒,200万插入为150秒。我机器配置为 CPU I5 2450M 内存4G 硬盘 西部数据500G 5400转 操作系统为WIN7 64位 ,数据库为ORACLE 11G 64位 插入测试工具为PL\SQL 9.0declarei integer; --定义变量begini := 1;loop/* 插入数据 */insert i.
由于项目需求,需要将Excel中的数据进过一定转换导入仅Oracle数据库中。考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户知道插入的状态,需要制作一个进度条来显示插入的进度。
项目中运用的是System.Data.OracleClient。首先将Excel数据通过转换函数转换为DataTable,其中的字段和数据库中相应表格的字段完全对应。
public int Import2Oracle(ISheet sheet, string tablename)
DataTable
在开发过程中需要测试千万级数据的获取情况,由于不能影响现有业务,没办法,只能自己先造个千万条数据了。
存储过程:简单类比的话,可以看作我们的Java程序,只不过前者是在数据库中运行。
存储过程声明:
CREATE OR REPLACE PROCEDURE 存储过程名字
BEGIN
--执行体
示例:存储过程插入千万条数据
CREATE OR REPLACE PROCEDURE INSERT_USER_TES
https://www.jb51.net/article/207999.htm
https://blog.csdn.net/FloraCHY/article/details/117792903
-- 进入数据库
use test;
-- 显示所有表
show tables;
-- 创建majors表
create table majors...
1.新建一张和ACCOUNTING_VOUCHER数据库表结构一致的临时表,ACCOUNTING_VOUCHER_TEMP
2.向临时表ACCOUNTING_VOUCHER_TEMP中插入10条数据
3.使用insert select的方式做表复制
注意事项...
for /f "tokens=* delims=" %%a in (%file%) do (
set line=%%a
set line=!line:%delimiter%=","!
set query="INSERT INTO your_table_name (column1, column2, column3) VALUES (!line!);"
sqlplus username/password@database_name @- <<EOF
set echo off
set feedback off
set heading off
set pagesize 0
set termout off
set verify off
!query!
exit;
请注意,您需要将 `path/to/your/csv/file.csv` 替换为您的csv文件的实际路径,并将 `your_table_name` 替换为您要插入数据的表的名称。您还需要将 `column1, column2, column3` 替换为您要插入数据的列的名称。