天天看点

sql 查询报错:超时时间已到。在操作完成之前超时时间已过或服务器未响应。

出现这种错误提示的原因是什么??

 1 数据连接对象没关闭? 

 2 服务器响应时间不够长?

 3 。。。

测试的时候发现,,,语句和函数有区别

有一个函数执行报错

有的不报错

1:   SqlCommand com = new SqlCommand();

                com.CommandTimeout = 60; //设置相应时间

2: 在数据库中设置

       (菜单) 工具-----选项----设计器----= 事务超时时间 设置为60秒

  语句 报错: 如下:

sql 查询报错:超时时间已到。在操作完成之前超时时间已过或服务器未响应。

用了第二种方式 还是出现同样的问题:

解决方式如下:设置 响应时间

 adp.SelectCommand.CommandTimeout = 180;

sql 查询报错:超时时间已到。在操作完成之前超时时间已过或服务器未响应。

3.Web页面执行超时,如上传大批量的文件

   需要修改配置文件:

<system.web> 

<httpRuntime maxRequestLength="102400"executionTimeout="720" />

</system.web>

同一个方法,一个连接查询语句 在数据库执行了46秒,一个简单语句执行2秒,这个执行了46秒的过程中报错,“ 程序超时!”,同一个条语句执行1秒都没有也报 “超时错误”

网上搜了一大把:

1

把SQL Server 2005的最大使用内存设置为6G(系统总物理内存为8G)后,作查询时经常返回查询超时,我该怎么办?

2

除了修改超时时间设定,

建议尽量优化查询语句.

3

有很多种方面的原因 建议尽量的去优化查询 和设计好表结构

4

真是要超时的查询肯定有问题

检查下dmv是不是被锁给阻塞了,或者大表产生了笛卡尔积的错误连接

总结为:优化语句和表结构。。。。优化语句还行表结构怎么优化,三个表连接最为简单的连接语句只是表里的数据有点多,产生的笛卡尔积多,多没关系啊?

终于发现重点:重点:  一个语句三表连接语句查询不带order by 语句执行耗时51秒。  带上order by 语句 耗时1秒不到。     多次验证,结论就是这么明显。

结论:连接查询 带上  order by 可以提高效率。。加上order by 语句不报超时错误了。我的问题已经over。

 查询一个函数,,函数里用到游标,耗时1分2秒, 其中一个多表连接耗时45秒,同样的查询语句,,在数据较少的情况下没问题,数据多了就变的有问题。优化语句

尽量减少多表连接查询,特别是数据量大的表。

sql 查询报错:超时时间已到。在操作完成之前超时时间已过或服务器未响应。

ok  question is  over