用于改进 .NET 代码和 SQL Server 之间的执行时间的 list 。 任何从基本到奇怪的解决方案都值得赞赏。
代码:
通过 avgbody 更改命令和连接中的默认超时.
avgbody 使用存储过程调用而不是内联 sql 语句.
使用 Jay Shepherd 的事件监视器查找阻止/锁定.
SQL 服务器:
注意存储过程中的参数嗅探 AlexCuse .
注意动态增长数据库 Martin Clarke .
通过 BradO 使用 Profiler 查找任何花费超过 100 毫秒的查询/存储过程.
将事务超时增加 avgbody .
通过avgbody 将动态存储过程转换为静态存储过程.
通过Jay Shepherd检查服务器有多忙.
最佳答案
过去我的一些解决方案是:
修复 sql 命令的默认超时设置:
Dim myCommand As New SqlCommand("[dbo].[spSetUserPreferences]", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.CommandTimeout = 120
增加连接超时字符串:
Data Source=mydatabase;Initial Catalog=Match;Persist Security Info=True;User ID=User;Password=password;Connection Timeout=120
增加 sql-server 2005 中的事务超时
在 management studio 的“工具”>“选项”>“设计器”中增加“事务超时时间:”,即使“覆盖表设计器更新的连接字符串超时值”已选中/未选中。
将动态存储过程转换为静态存储过程
让代码调用存储过程,而不是在代码中编写内联 sql 语句。
关于c# - 用于修复 .NET 应用程序以解决 SQL Server 超时问题并改进执行时间的 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67366/