【发布时间】:2012-01-03 08:50:30
【问题描述】:
谁能告诉我以下两种插入记录的方法可以带来更好的性能?
案例 1
SqlCommand cmd = new SqlCommand();
for (int i = 0; i < 10000; i++)
{
cmd = new SqlCommand("insert into test(id, name) value('" + i + "', '" + i + "')");
cmd.ExecuteNonQuery();
}
案例 2
string sql = null;
for (int i = 0; i < 10000; i++)
{
sql += "insert into test(id, name) value('" + i + "', '" + i + "')";
}
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
【问题讨论】:
-
您进行过简单的时序测试吗?每个执行 10,000 次,看看哪个运行得更快。
-
相同,但首选第一种情况。相同,因为您将使用连接池。
-
首先:STOP 将您的 SQL 代码连接在一起!!这是邀请黑客使用 SQL 注入攻击您!请改用参数化查询!
-
@DanAndrews:真的吗?!?!??您认为创建 10'000 个
SqlCommand实例并一个一个执行它们与创建单个实例并执行一次一样快??? -
你是对的,它会更快。
标签: c# sql loops insert sqlcommand