50MB以上的SQL脚本的运行?(100分)

  • 主题发起人 主题发起人 pinksnower
  • 开始时间 开始时间
P

pinksnower

Unregistered / Unconfirmed
GUEST, unregistred user!
我从Mysql上导出Insert语句,保存以后最小的文件大小就是50MB以上,我能通过cmd命令把这个文件在SQL 2K的执行分析器上导入,但是F5执行就报内存不足?

有高手知道 在这样的情况下我怎么操作呢?



有15个这样的文件,我而且以后需要经常操作的~

所以救命啊~~
 
晕,会有那么大吗?是不是有其他问题,你用文本打开过没有。
 
你这样是同步数据库吗?

如果是的话,又确实必须这样做,可以写一个小程序,将你这50M的Insert语句,用文件流分段读入,然后再分批执行。这个应该不是很难的。
 
建议将一些大的sql结果缓存一下吧,要不真的不行哦
 
晕晕晕.什么语句这么大?
 
全部都是Insert 语句

我就把表倒出来的,mysql里面用mysqldump 倒出成sql语句的

没有办法就只能写程序阿?
 
其实你这样用手工搞不也挺麻烦的,要不然你说一下你的具体情况我帮你写一个?
 
你看是不是文件格式有误呀,一般不会有这么大的脚本的
 
我知道的许多大公司都用这样的方法更新数据库,50M算小的了,我见过最大的2G.简直哭笑不得.有时运行要一整天(每一条记录的更新都是一次sql命令,非常慢).若直接用程序添加数据,多数情况40分钟就可以搞定.
 
啊,太大了,每条记录一条SQL语句,是不是可以简化啊。
后面说的还有2G的????
 
bmsr
有时运行要一整天---你怎么运行? 写程序?还是 F5 就可以? 好像要报内存不够的。。。

娃娃:
可能很简单,连接数据库IP地址,名称,用户名 密码,填写以后连接到数据库了。提供一个*.sql,能不能让程序逐行提取,然后执行。

就是好像有个文件 12345.sql
/*************************************************/
insert into tablename(XX01,XX02) valuse(YY01,YY02)
insert into tablename(XX11,XX12) valuse(YY11,YY12)
insert into tablename(XX21,XX22) valuse(YY21,YY22)
insert into tablename(XX31,XX32) valuse(YY31,YY32)
.....
insert into tablename(XXn1,XXn2) valuse(YYn1,YYn2)
/*************************************************/
程序逐步一条条提取--〉数据库里执行,直到1234.sql结束
 
程序已经写好了,放在盒子上了,叫“SQL执行工具”

如果需要,可以发邮向我索要

computer.93@gmail.com
 
,这个可以分段执行啊。
 
是的,可以分段执行,而且50M的文件也只是占用5、6M的内存分段打开。而且支持参数运行,可以制成计划任务,自动运行。
 
谢谢 娃娃~

我研究下

同时好像还有一个方法可行

大家一起学习下吧,就是用osql,目前尝试30M的语句是成功的
 
后退
顶部