- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 .NET 4.0 Winform 和一个 .NET 4.0 Windows 服务,它们都通过 LINQ to SQL 连接到 SQL 2005/2008 数据库。它在我们的测试环境中运行良好且快速,具有完美的生产数据克隆,但在生产环境中,它运行非常缓慢并且 CPU 使用率和带宽使用率较低。我还注意到每天有数百次 SQL 超时,即使对于索引良好的数据库上的最小查询也是如此。所以我启动了 Profiler...
我发现在 10 分钟的负载捕获期间,sp_reset_connection 占 SQL CPU 总持续时间的三分之一和所有 SQL 调用总数的 90%。
我在运行该服务的应用程序服务器上拥有管理员访问权限。我几乎无法访问他们运行 Winform 的终端服务器,也无法访问 SQL 服务器。
是什么导致 sp_reset_connection 如此频繁地运行?
最佳答案
找到了一些关于此的其他页面,其中一个建议:
对于您的连接重置,请在使用它之前打开您的 DataContext 连接,并在最后关闭它。
db.Connection.Open()
... work...
db.Connection.Close()
关于c# - Linq-to-SQL 和 sp_reset_connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7441289/
由于我遇到了一些问题,我正在 .NET Framework 4 中尝试连接池。使用 SQL Profiler,我可以看到每次从连接池中获取连接时,都会执行存储过程 sp_reset_connectio
sp_reset_connection 似乎由 SQL Server 连接池调用,以确保从池中重用的连接重置大部分设置。有谁确切知道它做什么和不做什么? 例如我从 this post 看到它不会重置事
我的分析器跟踪显示 exec sp_reset_connection在每个 sql 批处理或过程调用之间调用。有reasons for it ,但是如果我确信它是不必要的,我可以防止它被调用以提高性能
我有一个 .NET 4.0 Winform 和一个 .NET 4.0 Windows 服务,它们都通过 LINQ to SQL 连接到 SQL 2005/2008 数据库。它在我们的测试环境中运行良好
这个问题已经有答案了: What does sp_reset_connection do? (2 个回答) 已关闭 4 年前。 社区去年审查了是否重新开放此问题,并将其关闭: 原始关闭原因未解决 尝试
根据我读到的有关“exec sp_reset_connection”的信息,当连接池存在时,它出现在 SQL Server Profiler 跟踪数据中,从要考虑的跟踪数据中删除/排除它似乎是安全的(
我是一名优秀的程序员,十分优秀!