5

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

ERROR [HYT00] [Microsoft][ODBC SQL Server Driver]Timeout expired SQL: SELECT ... large statement here ...

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

4

1 回答 1

2

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

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

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

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

希望能帮助到你

沃尔特

于 2014-02-15T14:16:54.830 回答