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;
VS
string query = string.Format("INSERT INTO tbl_test VALUES({0},{1});", varA, varB);
cmd.CommandText = query;
答案 0 :(得分:2)
在几乎所有情况下,使用参数都是更快:用于优化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)
并且常量解析/优化非常耗时。
答案 1 :(得分:1)
答案 2 :(得分:1)
使用参数肯定更快。
string.Format
,则数据库服务器将处理每个和{
每个陈述都是新的。这意味着:声明必须是
编译和优化然后执行。