数据库连接池,怎么设置一个连接查询超时时间

数据库连接池,怎么设置一个连接查询超时时间,第1张

查询超时,要从2个方面去考虑,

一个是超时时间加大,另外一个是最主要的,就是改善查询效率;

一般查询超时设置到180秒已经够长了,不应该像其他网友说的设置2000,2000秒是什么概念,当一个查询如果需要耗时33分钟,点了这个按钮后,可以先去泡个茶,一会再过来看看结果,这肯定是有问题的,数据量再大也要考虑其他途径解决,而不是纯粹增加超时时间。

这个问题不是简单的系统消耗的问题

如果从系统资源占用方面来说,肯定是长连接消耗少一些毕竟每次连接都会执行建立连接和断开连接等 *** 作

但是如果用户过多 你使用长连接的话,数据库连接会一直占用着,一旦连接数满,后面的用户就再也无法连接了

原因分析:

查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。

另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。

而造成超出估计值那么多的原因有两种可能:

一是估计时间不准确;

二是sql语句涉及到大量占用内存的查询(如排序和哈希 *** 作),内存不够,需要排队等待资源造成的。

解决办法:

A优化语句,创建/使用合适的索引;

B解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名;

C增加内存

如果想手动设置查询超时,可以使用以下语句:

sp_configure 'show advanced options', 1 GO RECONFIGURE GO sp_configure 'query wait', 2147483647 GO RECONFIGURE GO

string Text = "select sum(income_money) from income_box where income_time= ' " + now_time+" ' ";

注意单引号 ' 2011-01-11' 两边的

mysql的默认连接超时时间为8小时,如果需要修改的话更改配置文件:

/etc/mycnf

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

单位是s,重启后生效

以上就是关于数据库连接池,怎么设置一个连接查询超时时间全部的内容,包括:数据库连接池,怎么设置一个连接查询超时时间、长时间建立数据库连接和多次建立数据库连接的消耗谁高一点、sql 数据库连接超时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10191640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存