数据库连接超时问题

问题描述

我从数据库中提取数据,一张表约500W条数据,有19列,按人员标识来查询的话正常2秒能出来结果,如果select*来绑定到datagridview的话,就会连接超时,但有时也能查出结果来.因为一些需求不用分页和虚拟模式显示,求一些解决超时问题的经验?

解决方案

解决方案二:
19列你要全部显示?减少查询字段的个数,可以提高查询效率,另外你至少有个查询条件限制,否则500w的数据量全部读出来会增加内存占用率。
解决方案三:
select需要的字段添加索引
解决方案四:
可以只显示前n行,全部查出来也没用吧
解决方案五:
设置SqlDataAdapter变量的SelectCommand.CommandTimeout=0;意思是不限制查询命令执行时间。默认查询命令时有超时限制的
解决方案六:
最好还是分页;提高查询效率
解决方案七:
这种需要分页代码了。不适合采用系统自带的datagrid的分页功能一是内存占用大,二是网络负载也大,三是CPU也受不了,四是数据库的IO也难受
解决方案八:
建议在数据库那边做存储过程分页:createprocPageNum@PageSizeint,--每页显示条数@PageIndexint,--当前是第几页@totalRowsintoutput,--总行数@totalPagesintoutput--总页数asdeclare@startIdintdeclare@endIdintset@startId=@PageSize*(@PageIndex-1)+1set@endId=@startId+@PageSize-1select@totalRows=COUNT(*)fromBooksset@totalPages=@totalRows/@PageSizeif(@totalRows%@PageSize!=0)--如果总行数除每页显示数据量的值不等于0,则总页数得加1beginset@totalPages=@totalPages+1enddeclare@IndexTabletable(Idintidentity(1,1),nIdint)insertinto@IndexTableselectIdfromBooksselect*from@IndexTableast,Booksasbwheret.Id>=@startIdandt.Id<=@endIdandt.nId=b.Idgodeclare@trint--总行数declare@tpint--总页数execPageNum4,2,@troutput,@tpoutputprint'这是总页数'+convert(varchar,@tp)--数据转换print@tr
解决方案九:
500W条数据,有19列----------------用户要求全部显示?
解决方案十:
分步加载数据
解决方案十一:
全部显示?内存还不爆掉。

时间: 2024-09-14 21:54:00

数据库连接超时问题的相关文章

MySql数据库连接超时处理

博主在做web开发时遇到MySql数据库连接超时的问题. 控制台报错如下: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4

求一段数据库连接超时的代码

问题描述 求一段数据库连接超时的代码 各位大师,小弟这里求一段代码,要有如下功能:在连接数据库(或者连接池)的时候, 判断是否连接成功,如果在规定的时间内连接失败了,则尝试再次连接. 解决方案 具体代码不打,给思路: 1.限制连接个数,然后当连接满了,就连接不上,自然连接超时 2.整个错误的密码,不推荐,按照你的想法,应该是第一种,因为如果是错误的,重新连接也是错误! 解决方案二: 谢谢你的回答,不过不是我想要的结果,我想要的不是因为连接池满了而连不上,而是因为别的一些原因,所以我想判断如果连接

解决MySQL 5数据库连接超时问题

最近碰到一个mysql5数据库的问题.就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库.问题是待机一晚上后,第二天早上第一次登录总是失败.察看日志发现如下错误: "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago." 经过一番调研,发现很多人都碰到过类似

数据库连接超时

问题描述 当处理600万条数据时出现连接超时,连接超时时间和连接池都设定了,但是还会出现这个问题.请问怎么解决!!!!! 解决方案 解决方案二:感觉不合理前台列表显示么?还是sql分页处理吧解决方案三:不可避免会超时.建议分批处理,先处理10w,再处理另外10w.或者这样,把已经处理的标记为isDown=1,然后如果发生超时,再接着处理那些isDown=0的记录.解决方案四:看看你实际的需要,是不是要显示这么多数据,对这些数据要进行什么操作??解决方案五:不需要显示在页面功能:A数据库a表中的数

SQL数据库连接超时的原因与解决方法

1.由于数据库设计问题造成SQL数据库新增数据时超时 症状: A. Microsoft OLE DB Provider for SQL Server 错误 '80040e31' [ODBC SQL Server Driver]超时已过期) B.服务器上看CPU.内存占用率很低: C.事件日志中提示: 数据库 '*********' 中文件 '***********' 的自动增长在 453 毫秒后已取消或出现超时.使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小

JDBC 数据库连接超时和查询超时控制问题

问题描述 DriverManager.setLoginTimeout();Statement.setQueryTimeout();不起作用 问题补充:chen_yongkai 写道 解决方案 引用不知道针对不同数据库jdbc驱动有没有统一的实现方法来控制连接超时? 应该没有统一的方法,这和数据库厂商的接口有关系,也没有形成统一的标准.解决方案二:引用Oracle JDBC does not support login timeouts. Calling the static DriverMana

SQL数据库超时过期问题的解决方案

如果SQL的数据库越来越多,有时候会遇到读取超时,死锁等一大堆问题,按经验来说,数据结构设计不合理,经常使用视图等原因都有,那些怎么解决呢?下面看文章 1.由于数据库设计问题造成SQL数据库新增数据时超时 症状: Microsoft OLE DB Provider for SQL Server 错误 '80040e31' ([ODBC SQL Server Driver]超时已过期); 服务器上看CPU.内存占用率很低; 事件日志中提示: 数据库 '*********' 中文件 '*******

MySQL超时参数以及相关数据集成、DataX数据同步案例分享

一.背景 MySQL系统变量提供关于服务器的一些配置和能力信息,大部分变量可在mysqld服务进程启动时设置,部分变量可在mysqld服务进程运行时设置.合理的系统变量设值范围,是保障MySQL稳定提供服务的重要因素.本文主要描述MySQL数据库的超时timeout相关的一些系统变量,部分参数同程序应用中常见到的CommunicationsException: Communications link failure异常息息相关. 本文也结合数据同步的场景,对使用DataX3进行MySQL数据同步

关于MySQL的wait_timeout连接超时问题报错解决方案

问题描述 我在做数据定时采集的时候,发现一开始数据连接正常,可是,等访问了一段时间以后,就会报出这个异常,搞了好几天都没有解决,真的是很着急,网上很多人都说这是数据库连接超时的问题,可以采用c3p0进行解决,或者进行MySQL配置文件的改变,这些方法都试过,可是,还是没有成功!每次总是要自己重启服务器解决,这样子也太次了,所以,想和大家一起研究下,有人帮忙的吗???!!!贴出报错提示:**BEGINNESTEDEXCEPTION**com.mysql.jdbc.exceptions.jdbc4.