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

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

 

 1 数据连接对象没关闭? 

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

 3 。。。

 

 

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

 

有一个函数执行报错

 

有的不报错

 

1:   SqlCommand com = new SqlCommand();
                com.CommandTimeout = 60; //设置相应时间

2: 在数据库中设置

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

 

  语句 报错: 如下:

 

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


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


 adp.SelectCommand.CommandTimeout = 180;



 

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秒,同样的查询语句,,在数据较少的情况下没问题,数据多了就变的有问题。优化语句

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




ok  question is  over


 

 

          


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值