社区
C#
帖子详情
...........挑战数据库查询和文件读写极限......
hzhxxx
2007-01-16 04:58:11
...........挑战数据库查询和文件读写极限......
需要把数据库中一个数据表 3600W 条记录读出,写成一个 txt 文本文件
一条记录对应 txt 文件中的一行数据,有什么比较快的方式
1. 目前我准备每次取出100 条记录后通过(每次最多取这么多) 异步IO 的方式把数据写入
文本文件,这样我也需要 循环 36000次,每次就算0.5秒,但是这样初步计算了一下,大致
也要5 个小时啊,客户没法答应,怎么办
...全文
324
11
打赏
收藏
...........挑战数据库查询和文件读写极限......
...........挑战数据库查询和文件读写极限...... 需要把数据库中一个数据表 3600W 条记录读出,写成一个 txt 文本文件 一条记录对应 txt 文件中的一行数据,有什么比较快的方式 1. 目前我准备每次取出100 条记录后通过(每次最多取这么多) 异步IO 的方式把数据写入 文本文件,这样我也需要 循环 36000次,每次就算0.5秒,但是这样初步计算了一下,大致 也要5 个小时啊,客户没法答应,怎么办
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hzhxxx
2007-01-18
打赏
举报
回复
/*
WriteFileTest()
{
Console.WriteLine(DateTime.Now.ToString());
FileStream fStream = new FileStream("c:\\bb.txt",FileMode.Append);
const int length = 1024 * 6;
StringBuilder strvalue = new StringBuilder();
//Console.WriteLine("read start" + DateTime.Now.Millisecond.ToString());
for(int i = 0; i < 70000;++i)
{
for(int k = 0;k < 100;++k)
{
strvalue.Append(i);
strvalue.Append(";11");
strvalue.Append(";22");
strvalue.Append(";ggg");
strvalue.Append(";fffff");
strvalue.Append(";aaaa");
strvalue.Append(";22");
strvalue.Append(";ggg");
strvalue.Append( ";fffff");
strvalue.Append(";发大幅度");
strvalue.Append(";aaaa");
strvalue.Append( ";fffff");
strvalue.Append(";发大幅度");
strvalue.Append("\r\n");
}
//Console.WriteLine("read end" + DateTime.Now.Millisecond.ToString());
byte[]ImageContent = System.Text.Encoding.Default.GetBytes(strvalue.ToString());
//Console.WriteLine("write start" + DateTime.Now.Millisecond.ToString());
fStream.Write(ImageContent,0,ImageContent.Length);
//Console.WriteLine("write end" + DateTime.Now.Millisecond.ToString());
strvalue.Remove(0,strvalue.Length);
}
fStream.Close();
Console.WriteLine(DateTime.Now.ToString());
}
经过测试,这段代码的运行速度是最快的,写一个 477M 的文件耗时25s,效率的
瓶颈是内部的100次循环,组装字符串,IO 写操作非常快
各位看还有什么优化的措施
*/
hzhxxx
2007-01-17
打赏
举报
回复
经过测试 ,做 70000 次循环,每次循环里面再 100 次循环(模拟取数据),
使用 stringbuilder 预先开 1024 * 128 k 内存,循环使用这段内存,
最终写到一个文本文件。
同步模式: 25s,异步模式 26m,文件大小 为 477431KB,测试结果表明同步比异步快,
单线程模式
bitpolar
2007-01-16
打赏
举报
回复
这也算极限???
0.5秒执行一次也太慢了吧
一般服务器(我们公司服务器大致2W块钱左右)通过WebService执行登录大约支持1000次/秒
hzhxxx
2007-01-16
打赏
举报
回复
部署数据库备份一类的,导出的数据还要加工处理,比如说某个字段是值 1 写入文本文件是 正确,2 写入是错误
hzhxxx
2007-01-16
打赏
举报
回复
不能到数据库上操作,一定是需要调用别人的存储过程(别人提供的方法),所以每次才能得到100 条记录的限制,这个是无法改变的了
runrunrun
2007-01-16
打赏
举报
回复
用bcp命令
mobydick
2007-01-16
打赏
举报
回复
数据库图标上点右键->所有任务->导出数据
TheRule
2007-01-16
打赏
举报
回复
直接从数据库导出为一个txt文件不行吗?
joleo
2007-01-16
打赏
举报
回复
这个txt还打得开吗?
*****************************************************************************
http://www.poge.com.cn
三省Ta叔
2007-01-16
打赏
举报
回复
执行一次需要那么久吗?那不干脆找个打字的敲进去
数据库性能基准测试 DB-Webbench.zip
通过模拟大量并发用户对数据库执行读写操作,它可以揭示数据库在
极限
条件下的瓶颈和优化空间。 DB-Webbench 的核心功能包括: 1. **多线程模拟**:Webbench 可以创建多个线程,每个线程代表一个并发用户,模拟真实...
面试题高并发和大流量解决方案篇.pdf
3. 数据库优化:实施数据库缓存、读写分离、分库分表和分区操作,以提高数据库的访问效率。 4. 服务端优化:采用负载均衡,将请求分配到多个服务器上处理,以提高系统的整体处理能力。 5. Web服务器优化:静态化...
官方版_pgxc-v1.2.1.tar.gz
【官方版_pgxc-v1.2.1.tar.gz】是一个包含Postgres-XC v1.2.1的压缩包文件,这是PostgreSQL的一个分布式数据库管理系统(DBMS)的扩展版本。Postgres-XC旨在提供一个高度可用、可扩展且线性可伸缩的解决方案,以满足...
redis.docx(基础)
然而,随着数据量的增加和访问量的增长,单机数据库面临诸多
挑战
,如数据存储容量限制、索引性能瓶颈以及读写负载过高等问题。 - **引入缓存技术**:为缓解这些问题,引入了缓存技术如Memcached来减轻数据库压力。...
软件测试葵花宝典!练就此功,
21. **压力、负载、性能测试**:压力测试检查系统
极限
,负载测试衡量系统在正常和预期负载下的表现,性能测试关注响应时间、吞吐量等指标。 22. **系统瓶颈**:系统中限制整体性能的单一组件或环节。 23. **文档...
C#
111,092
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章