海量数据的插入问题

ACCPY111 2009-02-09 03:44:22

DateTime begin = DateTime.Now;
string connectionString = "...";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlDataAdapter sd = new SqlDataAdapter();
sd.SelectCommand = new SqlCommand("select devid,data_time,data_value from CurrentTest", conn);
sd.InsertCommand = new SqlCommand("insert into CurrentTest(devid,data_time,data_value) "
+ " values (@devid,@data_time,@data_value);", conn);
sd.InsertCommand.Parameters.Add("@devid", SqlDbType.Char, 18, "devid");
sd.InsertCommand.Parameters.Add("@data_time", SqlDbType.Char, 19, "data_time");
sd.InsertCommand.Parameters.Add("@data_value", SqlDbType.Int, 8, "data_value");
sd.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
sd.UpdateBatchSize = 0;

DataTable dt = new DataTable();
sd.Fill(dt);

Random r = new Random(1000);
for (int i = 0; i < 100000; i++)
{
object[] row = { "DEVID" + i, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), r.Next(1, 1000) };
dt.Rows.Add(row);
if (i % 300 == 0)
{
sd.Update(dt);
dt.Clear();
}
}
sd.Update(dt);
dt.Clear();
sd.Dispose();
dt.Dispose();
conn.Close();

}
TimeSpan ts = DateTime.Now - begin;
Response.Write("ts = " + ts.TotalMilliseconds);

参考http://blog.csdn.net/ccy3253/archive/2008/05/17/2455230.aspx的博客,为什么作者说他插入10万条数据用时28秒,而我却要15多分钟,以上为我的源代码.
...全文
105 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
koukoujiayi 2009-02-10
  • 打赏
  • 举报
回复
用强类型的DataSet试试看!!
ACCPY111 2009-02-10
  • 打赏
  • 举报
回复
那10万条数据用时15多分钟算多吗,属于接受范围吗
jackljane 2009-02-09
  • 打赏
  • 举报
回复
10万条数据用时28秒 搞不完的,

就算直接在数据库里用存储过程做。也不只这么久的时间的。


liujiayu10 2009-02-09
  • 打赏
  • 举报
回复
对方机子太烂
要么对方网络太差
human_2 2009-02-09
  • 打赏
  • 举报
回复
10万条数据用时28秒 我估计搞不定,
除非他的服务器是小型机
ACCPY111 2009-02-09
  • 打赏
  • 举报
回复
1.就算我数据库机器的配置没有他好也不该差距那么大吧
2.我的表任何索引都没加
3.我的表开始是空的
human_2 2009-02-09
  • 打赏
  • 举报
回复
1)你数据库 机器的配置没有他好
2)你的表是不是索引比他多啊?
3)select devid,data_time,data_value from CurrentTest 这个表有多少记录啊
建议修改成select top 0 devid,data_time,data_value from CurrentTest

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧