我目前正在重写一个旧的ASP \ ASP.NET应用程序。因为我不能完全重写,所以我需要分几个部分。现在,我正在将代码库从ODBC升级到.net连接器。
有一个函数可以在用户每次访问页面时进行插入(或2)。性能是非常重要的。下面是插入数据的旧ODBC函数:
public string WriteDb(string sql)
{
myConnection.Close();
myConnection.Open();
myCommand.Connection = myConnection;
myCommand.CommandText = sql;
return myCommand.ExecuteNonQuery().ToString();
}
这是我正在做的那个:
void WriteDb(string sql, ICollection<MySqlParameter> pms)
{
using(MySqlConnection myConnection = new MySqlConnection(sConnection))
{
using(MySqlCommand myCommand = myConnection.CreateCommand())
{
myCommand.CommandText = sql;
foreach (var p in pms)
{
myCommand.Parameters.Add(mySqlParameter);
myCommand.ExecuteNonQuery();
}
}
}
我担心连接池耗尽。我的功能可以改善吗?
发布于 2014-10-31 18:36:58
Note 1-查询
我认为,最大的变化之一是你现在插入了这样的东西:
INSERT INTO tablename (KEY, KEY) VALUES (VALUE, VALUE);
INSERT INTO tablename (KEY, KEY) VALUES (VALUE, VALUE);
但更好的插入方式是:
INSERT INTO tablename (KEY, KEY) VALUES (VALUE, VALUE), (VALUE, VALUE);
它不需要两个查询和与数据库的通信,而只需要一个。
我不知道你是否有这样的疑问。但这会提高你的表现。
Note 2-连接
您为每个查询执行一个新的MySqlConnection。建立连接是一种沉重的方法。缓存您的连接,直到您停止使用它,并关闭它,当您完成,这将有很大帮助!也许对页面上执行的所有MySQL函数使用相同的连接可能更好。并在页尾关闭它。
https://stackoverflow.com/questions/26681269
复制相似问题