sql-server - 与 SQL Server 2017 的连接缓慢
问题描述
将我们的 c# 应用程序从 SQL Server 2008 迁移到 SQL Server 2017 后,我们意识到连接密集型操作明显变慢。
我已经隔离了一个将 10000 次连接到数据库并在那里进行简单查询的代码。此代码针对 SQL 2008(或 SQL 2012)运行约 5 秒,但针对 SQL 2017 运行约 25 秒。
该代码针对 .NET 4.52 进行了编译,并在具有不同操作系统的不同机器上进行了测试,包括 SQL Server 机器上的本地执行(其中有两个不同的 SQL 2017 服务器)。我已经测试了集成身份验证和SQL Server身份验证。
重现代码:
for (int i = 0; i < 10000; i++)
{
using (var con = new SqlConnection("server=hostname;Trusted_Connection=True;database=dbname"))
{
con.Open();
var cmd = new SqlCommand("SELECT 1", con);
// if I ommit this line, the code runs very fast
cmd.ExecuteScalar();
}
}
来自评论的更新:
- 使用 SQL Server 版本 14.0.3223 (2017 CU16)
- 尝试了各种主机名:
hostname.domain
,,,127.0.0.1
(local)
- 试图强制执行特定的 SQL Server 协议(TCP/IP、命名管道、共享内存)
- 重启 SQL 服务后第一次执行速度较快,后面的执行速度同样慢
- 速度进度不是恒定的 - 代码有时运行得更快,然后又变慢(SQL Server 上没有其他负载)
有任何想法吗?