数据库链接过多问题,请求各位前辈!!!

问题描述

各位CSDN大虾早~最近一年负责开发公司一个基于REST风格的WEB项目之前由于客户数量少的缘故,调用频率一直不高,导致这个问题一直没发现前段时间调用频率上升,数据库链接数也随着增加,隔三差五会出现数据库链接中断等问题现在程序情况是客户每调用一次,都会创建一个ConnBus想请教该如何处理较好?先谢谢了

解决方案

解决方案二:
可以用日志记录一下每一种业务占用连接的时间长短。然后确定一个标准,比如说,低于200毫秒是好的,而高于2秒钟肯定是不能接受的。另外就是将任务分解出一些异步线程,甚至多个进程。例如一些类型的操作可以先放到数据库中,然后每当过一段时间才批量处理一次。这个处理是在其它进程中做的,甚至是分布到其它机器去做(当你又希望减小当前机器负载,同时又希望尽早提前开始异步任务时,就需要水平扩展任务服务器)。如果你没有很好地使用缓存,那么使用缓存可能是效果最显著的。它可以立刻让你的性能提高几十倍,让你的同时连接数减少10倍。
解决方案三:
虽然许多“技术的”手段看似都挺“技术化的”,但是我还是通常会首先去检查访问数据的事务的时间长短。我认为一个事务如果超过2秒钟就很可能是一个设计bug了。(你可以自己问问自己,你们的事务是否经常有更长的执行时间?!)我认为先全面清理一遍最基本的设计误区,然后再考虑那些纯技术手段,这样比较容易见效。一些程序员喜欢推卸责任。当他折腾什么缓存之类的“相当技术化的”东西之后,他就不愿意去承认自己设计的数据库事务太冗长的问题了。
解决方案四:
用户读写数据库肯定是要创建连接的,你要做的就是在用户读写时才去连接数据库,读写完成马上释放连接!
解决方案五:
对于使用.net中的连接来说,每一次访问数据都创建一个逻辑连接,是必须的。不但需要创建,而且要及时(比如说200毫秒)释放掉。因为这些逻辑连接是重复使用连接池里的物理连接所必须的。反而是,那种认为“应该共享逻辑连接,不应该及时释放逻辑连接”的想法才是错误的。
解决方案六:
每一次访问数据库都创建新的逻辑连接,跟减少访问数据库次数,这是两个不矛盾的东西。不要搞不清楚之间的关系。每一次访问数据库都要创建逻辑连接,是编程所必须的。是必较低级的编程知识。减少数据库访问次数,提高你的web的响应速度和并发吞吐能力,是设计问题。比简单的编程问题要高级多了。
解决方案七:
引用3楼SmileSkyNet的回复:

用户读写数据库肯定是要创建连接的,你要做的就是在用户读写时才去连接数据库,读写完成马上释放连接!

恩,这个目前是读写完后就立马释放链接了
解决方案八:
引用5楼sp1234的回复:

每一次访问数据库都创建新的逻辑连接,跟减少访问数据库次数,这是两个不矛盾的东西。不要搞不清楚之间的关系。每一次访问数据库都要创建逻辑连接,是编程所必须的。是必较低级的编程知识。减少数据库访问次数,提高你的web的响应速度和并发吞吐能力,是设计问题。比简单的编程问题要高级多了。

先谢谢的大神的回复!目前项目业务占用连接时间我测试过,有几个业务时间在1秒左右,我会往这方面进行调整另外,你提到的缓存,我有所考虑,可具体到项目实施上又有些迷茫,不知该如何运用缓存我们系统是OMS系统,客户可以调用我们提供的webapi创建/查询/批量处理订单数据创建/批量处理都是一次性的,不能缓存查询我认为每次应该都从数据库读取最新的数据,也无法缓存还请点拨一下

时间: 2024-10-03 22:21:28

数据库链接过多问题,请求各位前辈!!!的相关文章

包含文件对数据库链接的影响

链接|数据|数据库 你注意到没有,利用MX/UD开发程序时,所有需要链接数据库的页面中,都会在页面的开始部分使用包含文件调用数据库链接文件,如:<!--#include file="Connections/con123456.asp" --> 那么这段代码有什么好研究的吗?当然有研究了,如果你没有正确使用它,那么也许你在本地调试很正常的程序,一旦传到服务器上就出错,一个可能的原因就是包含文件在作怪!让我们了解一下什么是包含文件: ●包含文件 全称:Server_Side I

计算机改名导致数据库链接的诡异问题

  前几天给开发部门部署测试数据库时,遇到一个很诡异的问题:创建一个链接服务器GEK-MIS01时,报错如下: 消息 15190,级别 16,状态 1,过程 sp_dropserver,第 56 行 仍有对服务器 'GEK-MIS01' 的远程登录或链接登录. 脚本如下(略去登录名等关键信息):  /****** Object: LinkedServer [GEK-MIS01] Script Date: 07/05/2013 16:19:58 ******/ IF EXISTS (SELECT

数据库链接方式(一)

链接|数据|数据库 数据库链接方式(一) ( odbc篇) 1.        产生: 数据库早期的数据库连接是非常困难的. 因为各种数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API必须有深刻的了解. 因此,能处理各种各样数据库的通用的API就应运而生了-―ODBC(Open Database Connectivity), ODBC是人们在创建通用API的早期产物.在程序中可以使用相同的代码访问不同的数据产品,因此有许多种数据库(如:Access, MS-SQL Server,

数据库链接方式(二)

链接|数据|数据库 数据库链接方式(二) (DAO篇) 针对odbc的复杂性后来微软提出了一个解决方案: DAO(Data Access Objects). DAO是第一个面向对象的接口,DAO模型是设计关系数据库系统结构的对象类的集合.它们提供了完成管理一个关系型数据库系统所需的全部操作的属性和方法,这其中包括创建数据库,定义表.字段和索引,建立表间的关系,定位和查询数据库等.它实际上包涵了Microsoft Jet数据库引擎,这是一个由Microsoft Access所使用的引擎,并允许应用

建立数据库链接

链接|数据|数据库 建立数据库链接CREATE [public] DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '数据库连接字符串';说明:    1.一般情况PUBLIC由数据库管理员来创建:个人用户可以不加public,是私有的数据库链接:    2.'数据库连接字符串'可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义:    3.在配置文件init.ora中,数据库参数global_na

Sql Server下数据库链接的使用方法

有时候我们希望在一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成这些操作,我们首要的是创建数据库链接. 数据库链接能够让本地的一个sqlserver登录用户映射到远程的一个数据库服务器上,并且像操作本地数据库一样.那么怎么创建数据库链接呢?我现在有两种方法可以实现. 第一种:在 sqlserver 企业管理器中,建立,这个比较简单的,首先在 安全性--〉数据库链接 上点右键 ,在出现的菜单中点 新建数据库链接 ,然后会弹出一个界

单向链接过多导致URL不被收录疑似绿萝作怪

从百度推出绿萝算法以来,对于SEO行业来说可谓是几家欢喜几家愁,那些买卖链接的网站或者链接中介纷纷被降权,甚至是K站,阿里微微就是个典型的例子.直到现在为止,阿里微微仍然没有恢复收录,不过现在百度对大部分作弊网站的惩罚方式是降权,特别严重的才直接做K站处理.这点不免又让我联想到谷歌的做法,百度一直在效仿谷歌,谷歌是很少去K站的.笔者没有很多数据,也不好去分析绿萝算法是如何判断一个网站有没有买卖链接,若一个URL有很多单项链接也不一定就是买链接了,像很多做网页模版的网站都会在自己设计的模版上留一个

数据库链接篇

链接|数据|数据库 articleconn.asp'由于几乎每一个页面都用到数据库,把数据库作为一个独立的页包括在内'可以不必重复输入! '如:<!--#include file="articleconn.asp"-->'可在需要数据库链接的页面打入这一句话,避免重复输入相同的内容'使程序复杂化!<% dim conn dim connstr on error resume next connstr="DBQ="+server.mappath(&q

注册表中存储数据库链接字符串

链接|数据|数据库|注册表|字符串 引言: 数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问