sqlParameters vs string.Format哪个更适合提高速度?

不承担安全性

cmd.CommandText = "INSERT INTO tbl_test VALUES(@a, @b);";
SqlParameter  SqlParameter[] sqlParameters = new SqlParameter[2];
sqlParameters[0] = new SqlParameter("@a", SqlDbType.VarChar);
sqlParameters[0].Value = varA;
sqlParameters[1] = new SqlParameter("@b", SqlDbType.VarChar);
sqlParameters[1].Value = varB;




string query = string.Format("INSERT INTO tbl_test VALUES({0},{1});", varA, varB);
cmd.CommandText = query;

最佳答案

在几乎所有情况下,使用参数都更快:RDMS有一个相同的SQL可以优化:

  INSERT INTO tbl_test
       VALUES(@a, @b)


因此服务器可以一次解析和优化查询,然后直接运行它。相反,如果您不使用参数,则RDMS必须解析和优化许多稍微不同的查询,例如:

  INSERT INTO tbl_test
       VALUES(1, 2)
  ...
  INSERT INTO tbl_test
       VALUES(3, 4)
  ...
  INSERT INTO tbl_test
       VALUES(100, 101)


并且持续的解析/优化非常耗时。

关于c# - sqlParameters vs string.Format哪个更适合提高速度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26159764/

10-12 03:15