错误 [HYT00] [Microsoft][ODBC SQL Server 驱动程序]SQL 超时过期 - 这是什么超时?

问题描述 投票:0回答:3

我支持一个 IIS Web 应用程序,该应用程序构造 SELECT 语句并将其发送到 SQL Server。有时,这些语句效率不高或者针对非常大的表,因此从 SQL Management Studio 运行时需要三到四分钟才能完成。当从应用程序发送语句时,它会报告以下超时:

错误 [HYT00] [Microsoft][ODBC SQL Server 驱动程序]超时过期 SQL: SELECT ...这里有大语句...

不可能(立即)改进发送的 SQL 语句,因此我需要暂时增加所遇到的超时。但我似乎找不到与此错误消息相对应的超时。我希望这里有人能告诉我它指的是什么超时以及在哪里可以查看/更改它?

sql-server odbc odbc-sql-server-driver
3个回答
1
投票

您可以更改连接字符串并将 Timeout=[秒] 添加到连接字符串中 连接字符串 MSDN

请注意,HTTP 请求也可能超时,因此请确保您的 SQL 不超过这个时间。然后是用户,非常烦人的因素;-) 这种实现也会使您的网站失去兴趣。

通过将表拆分为多个磁盘文件并添加 CPU 或 RAM,可以更好地解决问题。还有一件事也有帮助,那就是查询与表同名的视图并删除对表的访问。像这样,您可以在不需要更改应用程序代码的位置上调整访问权限。

我们 DBA 做了很多事情来修复程序员的错误,提到的封装方法只是众多选项之一。

希望有帮助

沃尔特


0
投票

就我自己而言,在尝试了我在网上阅读的所有内容后,都没有成功。我检查了日志文件,发现它被限制在一定的大小,我增加了它并且它起作用了。 我不确定这是否是最好的解决方案,但我的查询和应用程序目前工作正常。我可能会将日志从有限更改为无限,或者只是增加日志文件。


0
投票

从 SYS.sysprocesses 中选择 *,其中阻塞 > 0

sp_who2 [spid] (或 sp_who)

DBCC 输入缓冲区([spid])

杀死[spid]

© www.soinside.com 2019 - 2024. All rights reserved.