有大约这里400 MB .txt文件由分隔插入数据“|”。在C#中使用Windows窗体,我将.txt文件的每一行插入到SQL服务器数据库的表中。从文本文件到SQL服务器(?速度法)
我在做什么是简单,就是(缩短了“......”为了简洁):
while ((line = file.ReadLine()) != null)
{
string[] split = line.Split(new Char[] { '|' });
SqlCommand cmd = new SqlCommand("INSERT INTO NEW_AnnualData VALUES (@YR1984, @YR1985, ..., @YR2012)", myconn);
cmd.Parameters.AddWithValue("@YR1984", split[0]);
cmd.Parameters.AddWithValue("@YR1985", split[1]);
...
cmd.Parameters.AddWithValue("@YR2012", split[28]);
cmd.ExecuteNonQuery();
}
现在,这是工作,但一段时间服用。这是我第一次用大量的数据做任何事情,所以我需要确保:A)我以高效的方式做到这一点,B)我的期望不是太高。
使用SELECT COUNT()
,而循环是怎么回事,我可以看数量上去了一段时间。所以我用了一个时钟和一些基本的数学来确定事物的运行速度。 在60秒内,有73881个插入。这是每秒1231个插入。问题是,这是一个平均速度,还是我表现不佳?如果是后者,我能做些什么来提高性能?
我看过一些关于SSIS是有效的用于这一目的完全吻合。但是,我需要通过单击Windows窗体中的按钮来执行此操作,而不是通过SISS。
这正是我所需要的。起初我有一个问题,因为有太多的数据,我得到OutOfMemory异常,但这篇文章让我走上了正确的道路:http://stackoverflow.com/questions/9442171/a-way-out-from -getting-systemoutofmemoryexception-while-imports-from-large-tex – CptSupermrkt 2012-03-07 00:27:05