C#学习教程:修复.NET应用程序到SQLServer超时问题和缩短执行时间的清单NET代码和SQLServer执行时间清单。从基本到奇怪的解决方案的任何东西都值得赞赏。代码:更改avgbody命令和连接的默认超时。使用存储过程调用而不是avgbody的内联sql语句。使用JayShepherd的ActivityMonitor查找阻塞/锁定。SQLServer:注意AlexCuse在存储过程中的参数嗅探。当心MartinClarke动态增长的数据库。使用Profiler查找BradO花费超过100毫秒的任何查询/存储过程。avgbody增加事务超时。avgbody将动态存储过程转换为静态过程。查看JayShepherd在服务器上有多忙。我过去的一些解决方案是:修复sqlcommand的默认超时设置:DimmyCommandAsNewSqlCommand("[dbo].[spSetUserPreferences]",myConnection)myCommand.CommandType=CommandType.StoredProceduremyCommand.CommandTimeout=120增加连接超时字符串:数据源=mydatabase;初始目录=匹配;保留安全信息=True;用户ID=用户;密码=密码;连接超时=120增加sql-server2005中的事务超时,在管理工作室的工具>选项>设计器中增加“事后超时:”即使选中/取消选中“覆盖表设计器更新的连接字符串超时值”。将动态存储过程转换为静态过程让您的代码调用存储过程,而不是在您的代码中编写内联sql语句。对于响应时间过长的抱怨,一个奇怪的“解决方案”是拥有一个更有趣的进度条。意思是,努力满足用户的感受。一个示例是WindowsVista等待图标。快速旋转的圆圈感觉事物移动得更快。Google在Android上使用相同的技巧(至少我见过的版本)。但是,我建议首先尝试解决技术问题,只有在别无选择的情况下才开始关注人类行为。你在使用存储过程吗?如果是这样,您应该了解参数嗅探。在某些情况下,这可能会产生一些运行时间非常长的查询。一些阅读:http://blogs.msdn.com/queryoptteam/archive/2006/03/31/565991.aspxhttp://blogs.msdn.com/khen1234/archive/2005/06/02/424228.aspx首先–检查正在运行的实际查询。我使用SQLServerProfiler是因为我检查了我的程序设置并检查我的所有查询是否使用了正确的连接和引用键。一些快速...运行Profiler来测量查询的执行时间。检查应用程序日志记录是否存在任何死锁。适用于SQLServer2000的奇怪方法今天可能仍然适用:确保您没有尝试在生产中动态增长数据库。有时,分配额外空间和运行正常负载所花费的时间会导致查询超时(并增长!)我也喜欢使用SQLServerProfiler。我喜欢在客户站点的数据库服务器上设置跟踪,以便在工作日的大部分时间保持15-30分钟,并记录所有持续时间>100毫秒的查询/存储过程。无论如何,对于“长时间运行”的查询,这是我的标准。以上就是《C#学习教程:修复.NET应用SQLServer超时问题和缩短执行时间清单》的全部内容。如果对您有用,需要了解更多C#学习教程,希望您多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
