c# 将文本中的数据快速导入到数据库(200万左右的数据量)
2014-03-06 15:06
162 查看
1、sql2008中 list表,只有一个字段 Lvalue
2、文本大约256万的数据量
3、测试结果:用时36秒!
string connStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=test1;Persist Security Info=True;User ID=sa;Password=123456";
DataTable dt = new DataTable();
dt.Columns.Add("Lvalue");
Stopwatch sw = new Stopwatch();
sw.Start();
IEnumerable lines = File.ReadLines(@"F:\1.txt", Encoding.Default);
DataRow row ;
foreach (string str in lines)
{
try
{
row = dt.NewRow();
row["Lvalue"] = str;
dt.Rows.Add(row);
}
catch (Exception ex)
{
//数据量超大时,会内存溢出
throw;
}
}
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr))
{
bulkCopy.DestinationTableName = "list";
bulkCopy.ColumnMappings.Add("Lvalue", "Lvalue");
bulkCopy.WriteToServer(dt);
}
long ssww= sw.ElapsedMilliseconds;
sw.Stop();
2、文本大约256万的数据量
3、测试结果:用时36秒!
string connStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=test1;Persist Security Info=True;User ID=sa;Password=123456";
DataTable dt = new DataTable();
dt.Columns.Add("Lvalue");
Stopwatch sw = new Stopwatch();
sw.Start();
IEnumerable lines = File.ReadLines(@"F:\1.txt", Encoding.Default);
DataRow row ;
foreach (string str in lines)
{
try
{
row = dt.NewRow();
row["Lvalue"] = str;
dt.Rows.Add(row);
}
catch (Exception ex)
{
//数据量超大时,会内存溢出
throw;
}
}
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr))
{
bulkCopy.DestinationTableName = "list";
bulkCopy.ColumnMappings.Add("Lvalue", "Lvalue");
bulkCopy.WriteToServer(dt);
}
long ssww= sw.ElapsedMilliseconds;
sw.Stop();
相关文章推荐
- Oracle数据库三种标准的备份方法
- sql中 in 、not in 、exists、not exists 用法和差别
- PostgreSQL 连接认证失败一例
- MongoDB 只允许本地访问
- 关于sqlite数据库
- oracle--v$lock 字段详解
- SQL Server 触发器
- 【转】Oracle中如何插入特殊字符:& 和 ' (多种解决方案)
- memcache开机自启动脚本
- MySQL命令行导出数据库
- 上传图片后使用数据库保存图片的示例分享
- 结合saltstack打造mysql dba数据库运维平台化salt-api接口
- 数据库sharding(scale up to scale out)
- SQL*Net( Oracle's networking software)简介
- nginx+tomcat+memcached
- Oracle 查询表中各列名称、表中列数
- Oracle 查询表中各列名称、表中列数
- Mysql数据库复制及备份
- mysql函数
- Sql Server 查询表中各列名称、表中列数