gpt4 book ai didi

c# - 将非常大的数据集写入文本文件

转载 作者:行者123 更新时间:2023-11-30 22:35:32 25 4
gpt4 key购买 nike

我有一个非常大的数据集,目前正在将其写入文本文件 (IO)。它非常慢,导致系统消耗大量资源,因为有成千上万行。

我想知道是否有人可以推荐一种好的方法来减少我系统的负载,或者至少平滑该过程以避免对内存资源等的需求激增。我不介意这是否意味着它需要更长的时间,但只要它不会给机器带来太多负载。

最佳答案

你的问题几乎没有意义,但假设你正在以 block 的形式从数据库中读取结果,你可以将它们以 block 的形式写入文件以避免将整个数据集加载到内存中,就像这样:

using (var conn = new SqlConnection(SomeConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT foo, bar FROM baz;";
using (var reader = cmd.ExecuteReader())
{
using (var writer = new StreamWriter("result.txt"))
{
while (reader.Read())
{
var foo = reader.GetString(reader.GetOrdinal("foo"));
var bar = reader.GetInt32(reader.GetOrdinal("bar"));
writer.WriteLine(string.Format("{0}, {1}", foo, bar));
}
}
}
}

就内存消耗而言,这将是摇滚乐,就性能而言,这当然取决于 SQL 查询的优化和 SQL 服务器的功能。

关于c# - 将非常大的数据集写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7409761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com