大数据导出问题
在CB中,要从Server 2000中导出数据,但数据量过大时(如一次导出10w条),速度会比较慢,而且cpu使用率一直会维持在100%
想请教各位高手,有什么方法能提高到处速度,并在导出数据时降低cpu的使用率,如维持在50~60%左右??
谢谢!!
问题点数:20、回复次数:4Top
1 楼lurel(城市陌生人)回复于 2006-12-01 12:50:43 得分 10
如果是这么大的数据,建议不要利用BCB的数据编程实现了,效率低,速度慢。利用SQL Server的dts工具来做吧。
如果非要用自己编程的话,利用线程来操作吧,不过还是不建议。Top
2 楼dfwjt()回复于 2006-12-02 09:52:03 得分 0
利用线程的话 同样存在cpu使用率过高的问题?不知道该如何解决?Top
3 楼fjye(老姜)回复于 2006-12-02 10:56:07 得分 10
用sqlserver的dcp命令。在cb里面创建一个bcp命令(执行到处数据到文件的操作)的bat文件,然后再CB中执行之,执行完以后cb中加载文件,这样要快的多得多,我的经验至少快50倍以上
给你一个bcp的例子
EXEC master..xp_cmdshell 'bcp "tempdb..SMP_TempUpTable" in d:\upinfo\mdn.txt -c -t\t -Usa -P -S127.0.0.1'
Top
4 楼dfwjt()回复于 2006-12-08 17:38:27 得分 0
问题基本解决,用的方法是:
先利用存储过程TStroedProc,从数据库里查询到相应的数据;然后将数据付给字符串,利用剪切板拷贝到Excel中。
但数据量过大时,导数据的速度会特别慢;cpu占用率100%
后来用memcpy将从数据库里数据拷贝到字符串指针,然后用剪切板拷贝到Excel中,速度还算可以。
不知还有什么其他方法?Top





