最近做项目,发现linq调用存储过程,第一次时会速度慢,但之后速度都很快,过一阵子又会慢一下,以实际的操作为例子:
using (FruitDbDataContext dbo = new FruitDbDataContext(GlobalInfo.Instance.ConnectString))
{
dbo.CommandTimeout = GlobalInfo.Instance.DbTimeOutSeconds;
执行存储过程
}
第一次执行大约2秒
改成
using (SqlConnection conn = new SqlConnection(GlobalInfo.Instance.ConnectString))
{
SqlCommand command = new SqlCommand("set arithabort on;", conn);
using (FruitDbDataContext dbo = new FruitDbDataContext(conn))
{
dbo.CommandTimeout = GlobalInfo.Instance.DbTimeOutSeconds;
执行存储过程
}
}
第一次执行大约1秒
这样操作虽然并没有完全达到1秒以内的速度,但能从2秒提高到1秒。