社区
数据库相关
帖子详情
六十万条记录输入数据库的问题
wenhao_76
2007-07-05 05:37:08
我现在有六十万条记录需要输入sql2000数据库,方法很简单,就是
query1.append;
query1.post;
我的问题是,用什么办法可以让这个操作以最短的时间完成,因为我大约算了一下,用目前的方法,需要20多小时,谢谢
...全文
282
17
打赏
收藏
六十万条记录输入数据库的问题
我现在有六十万条记录需要输入sql2000数据库,方法很简单,就是 query1.append; query1.post; 我的问题是,用什么办法可以让这个操作以最短的时间完成,因为我大约算了一下,用目前的方法,需要20多小时,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
僵哥
2007-07-06
打赏
举报
回复
用bcp.exe或者DTS
====================
可以试着拦截一下bcp或者dts的数据包,它们里面就是多条同时insert
sdzeng
2007-07-06
打赏
举报
回复
用bcp.exe或者DTS
僵哥
2007-07-06
打赏
举报
回复
汗一个楼上的...
roseforyou
2007-07-06
打赏
举报
回复
这个我有经验了,你用过vfp吗,先把这些数据导入到vfp中,很快啊,然后再把vfp的库导入到sql server 2000中,就会快很多呀。
僵哥
2007-07-06
打赏
举报
回复
对于MSSQL,建议在这种情况下采用TADOCommand,然后多条insert语句同时提交,各语句之间使用分号(;)分隔,相当于查询分析器当中的"go",如此大概每次提交500/1000条(主要根据数据内容的字节数而定),60W条记录,大概几分钟到几十分钟(关键看机器和网络的性能)。
brightyang
2007-07-06
打赏
举报
回复
mclkings(网络学子) ( ) 信誉:100 Blog 加为好友 2007-7-5 19:24:24 得分: 0
多开线程没有用的.因为你的操作对象是目标数据库.
1.不要单值 POST
2.看你以前的数据是什么格式的,最好用导入导出功能想法去实现.
======================
可以建成多个数据库,每个数据库同表,然后再把数据倒一下嘛
qxj
2007-07-06
打赏
举报
回复
DTS,原生ADO
yuehaiyang
2007-07-06
打赏
举报
回复
20个小时?太夸张了吧
我测试过的,delphi每秒可以插入1000多条数据
leeky
2007-07-06
打赏
举报
回复
關鍵是你的这个Query的语句写法了,如果你的语句是一直不变的,那麽越到後來越慢。
如果你的Query在这个插入過程中,最大時候的記錄数在2000到5000条,那麽速度應當是可观的。
不知你明白沒有?比如:記錄是按時間排序的,Query的语句中就可加上時間限制,当你的程序判斷其中的記錄已经到5000时,就post,然後关掉Query,重新更换这个時間條件,再一条条插入……
相信是很快的。
限制記錄数过小,则條件切換頻繁,速度不快;限制記錄数过大,佔用資源过大,速度也不会快。
starluck
2007-07-06
打赏
举报
回复
BCP应该几分钟可以搞定吧,视服务器配置而定。这个数据不大。
以前试着导三千多万条记录的表,好像用了二个小时DTS
lijinghe1
2007-07-06
打赏
举报
回复
bcp
newfang
2007-07-05
打赏
举报
回复
1,BCP
2,批量插入~~
gobiz
2007-07-05
打赏
举报
回复
建议自己根据文件内容构造SQL语句,然后多条语句执行一次,比如构造100条SQL语句,彼此之间用“;”分割,然后一次性将这100条SQL语句执行,可以有效的防止频繁和数据库进行通讯,提高更新速度!
mclkings
2007-07-05
打赏
举报
回复
多开线程没有用的.因为你的操作对象是目标数据库.
1.不要单值 POST
2.看你以前的数据是什么格式的,最好用导入导出功能想法去实现.
brightyang
2007-07-05
打赏
举报
回复
以前我把70几M的txt文件入库就这么弄的,还是比较快....
嘿嘿
brightyang
2007-07-05
打赏
举报
回复
query1.append;
query1.post;
不要每一条都post一次
尽量批量post
还可以再多开几个线程来存
hongqi162
2007-07-05
打赏
举报
回复
记录在那里来?
看看这里的导入方法有没有适合你的
http://www.pconline.com.cn/pcedu/empolder/db/sql/0502/551039.html
go
数据库
mysql与redis
MySQL 教程MySQL 是流行的关系型
数据库
管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系
数据库
管理系统)应用软件之一。在本教程中,会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL
数据库
。什么是
数据库
?
数据库
(Database)是按照数据结构来组织、存储和管理数据的仓库。每个
数据库
都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型
数据库
管理系统(RDBMS)来存储和管理大数据量。所谓的关系型
数据库
,是建立在关系模型基础上的
数据库
,借助于集合代数等数学概念和方法来处理
数据库
中的数据。RDBMS 即关系
数据库
管理系统(Relational Database Management System)的特点:1.数据以表格的形式出现2.每行为各种
记录
名称3.每列为
记录
名称所对应的数据域4.许多的行和列组成一张表单5.若干的表单组成databaseRDBMS 术语 在我们开始学习MySQL
数据库
前,让我们先了解下RDBMS的一些术语:
数据库
:
数据库
是一些关联表的集合。数据表: 表是数据的矩阵。在一个
数据库
中的表看起来像一个简单的电子表格。列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。行:一行(=元组,或
记录
)是一组相关的数据,例如一
条
用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。外键:外键用于关联两个表。复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。索引:使用索引可快速访问
数据库
表中的特定信息。索引是对
数据库
表中一列或多列的值进行排序的一种结构。类似于书籍的目录。参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束
条
件,目的是保证数据的一致性。MySQL 为关系型
数据库
(Relational Database Management System), 这种所谓的关系型可以理解为表格的概念, 一个关系型
数据库
由一个或数个表格组成, 如图所示的一个表格: 表头(header): 每一列的名称;列(col): 具有相同数据类型的数据的集合;行(row): 每一行用来描述某
条
记录
的具体信息;值(value): 行的具体信息, 每个值必须与该列的数据类型相同;键(key): 键的值在当前列中具有唯一性。MySQL
数据库
MySQL 是一个关系型
数据库
管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联
数据库
管理系统,关联
数据库
将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 是开源的,目前隶属于 Oracle 旗下产品。MySQL 支持大型的
数据库
。可以处理拥有上千万
条
记录
的大型
数据库
。MySQL 使用标准的 SQL 数据语言形式。MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。MySQL 对PHP有很好的支持,PHP 是目前流行的 Web 开发语言。MySQL 支持大型
数据库
,支持 5000 万
条
记录
的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。Redis 教程REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型
数据库
。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储
数据库
,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
一次向
数据库
插入多
条
记录
在开发中对于数据的操作经常有可能一次向
数据库
插入多
条
记录
。 对于才入门的程序员来说,第一感觉就是写个循环,先把sql写好每次循环的时候都传入不同的参数即可。 向用户表中一次插入多个用户。 String[] users={"张三","李四","王老五"}; String sql="insert into user (name)values(?)"; P
MySQL
数据库
中向表中同时插入多
条
记录
insert into 表名(字段名1,字段名2)values(值a1,值b1), (值a2,值b2), 示例: INSERT INTO bookinfo ( NAME, pub_date, readcount, commentcount, is_delete ) VALUES ( '神雕侠侣', '1978-10-21', 100000, 30000, FALSE ), ( '圆月弯刀', '1982-05-21', 80000, 12220, .
易语言教程
数据库
写和添加
记录
本课示范了写()、加
记录
()、加空
记录
()三个命令的使用方法。 视频链接: 511遇见易语言教程
数据库
添加
记录
(1)手动添加 (2)代码添加 使用代码添加和修改
记录
,主要有以下几个命令: “加空
记录
()”,可以在当前
数据库
记录
的尾部添加一
条
空
记录
。 “加
记录
()”,在添加空
记录
时,可以同时提供欲添加的数据。 “写()”,可以将数据写入当前
数据库
中的当前
记录
处的指定字段内。 教程源码: .版本 2 .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 字段表,.
mysql 唯一
记录
_在
数据库
中能够唯一地标识一个
记录
被称为 MySQL
数据库
使用教程...
主关键字(主键,primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一
条
记录
。在
数据库
中能够唯一地标识一个
记录
被称为主键。主键是
数据库
中具有唯一性的字段,也就是说数据表中的任意两
条
记录
都不可能拥有相同的主键字段。(推荐学习:MySQL视频教程)在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定
记录
。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由...
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章