SQL数据库连接池与C#关键字return
SQL数据库连接池:
先前做的一个Sharepoint项目,在上线后的不久,最近一直出现间歇性访问缓慢问题Sharepoint特性问题,并分析了其数据库服务器,发现所耗内存已经达到了97%。
所以断定是服务器内存不够使导致的,为了让客户升级硬件配置,扩展内存。我还在官网中,找到相应的资料,利用监控性能观察了,需要扩展内存的几个参数配置,那些都说明了,我们需要扩展内存,于是乎内存就扩充了。
然后再访问网站的时候,速度果然快了,起初还很自豪的以为问题解决了,可是好景不长,后面又出现访问速度缓慢的现象,再看数据库服务器,发现其内存也没有耗费太多,故只得从另外一个角度去思考了。
后来,发现是连接池的原因导致的,因为C#程序,默认是开启连接池功能的,而允许的最大连接数是100,即Max pool size = 100,在某个时间访问缓慢的原因就是因为这一时刻,同时并发数超过了100。为了说明是连接池的原因,我在测试服务器中进行测试,在默认情况下,这个测试网站访问速度是很快的,后来我将Max Pool Size = 1,再进行访问的时候,发现速度就如同蜗牛一般;于是将max pool size 设置稍微大点,再访问速度就有恢复正常。
从这一结果可以看出,我的推断是正确的,于是我就将正式服务器的Max pool size设置为500,间歇性访问缓慢的问题就解决了。
Return关键字:
在我接触的各个程序设计语言中,都有return关键字,其功能是直接结束其所在的函数,并返回相应的值。
但在今天,我在写程序的时候,为某个方法MethodA(),在某种条件下if(false) 调用了return,但是运行的时候总是不会出现我要的结果,如我想要A,程序运行完却出现了B,开始没想清楚,为什么依然会往后执行相应的程序,调试的结果也进入了我的if语句,而结果却不尽如意。
经过仔细思考,发现是因为MethiodB()程序并没有结束,我们只是结束了MethodA(),所以就会执行MethodB()的其他程序,也不知道当时是怎么想的,认为程序调用了return,就整个程序结束。
下面写写两个方法的伪代码:
MethodB()
{
some codes;
MethodA()
{
some codes;
return;
some codes;
}
other codes;
}
发现了,这个思想误区,后面的问题就迎刃而解了。
以上,是我最近的一点认知,写上来为了更好的提醒自己,尽量少犯点错,如有不当之处,还望各位同仁给点意见和建议,我将不胜感激。
SQL数据库连接池与C#关键字return的更多相关文章
- Go组件学习——database/sql数据库连接池你用对了吗
1.案例 case1: maxOpenConns > 1 func fewConns() { db, _ := db.Open("mysql", "root:roo ...
- JDBC编程学习笔记之数据库连接池的实现
在JDBC编程的时候,获取到一个数据库连接资源是很宝贵的,倘若数据库访问量超大,而数据库连接资源又没能得到及时的释放,就会导致系统的崩溃甚至宕机.造成的损失将会是巨大的.再看有了数据库连接池的JDBC ...
- ADO.NET中SQL Server数据库连接池
连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...
- c3p0数据库连接池无法连接数据库—错误使用了username关键字
一.问题描述 上篇博客说到了关于maven无法下载依赖jar包的问题,这篇博客再说一下关于在本个项目中遇到的关于使用C3P0连接池连接数据库的问题,真心很奇葩,在此,也请大家引起注意.首先看我的项目基 ...
- spring boot:配置druid数据库连接池(开启sql防火墙/使用log4j2做异步日志/spring boot 2.3.2)
一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: http ...
- 数据库连接池与SQL工具类
数据库连接池与SQL工具类 1.数据库连接池 依赖包 pymysql dbutils # -*- coding: utf-8 -*- ''' @Time : 2021/11/19 16:45 @Aut ...
- tomcat 7配置数据库连接池,使用SQL Server2005实现
昨 天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有针对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一 ...
- 阿里巴巴(alibaba)系列_druid 数据库连接池_监控(一篇搞定)记录执行慢的sql语句
参考帖子:http://www.cnblogs.com/han-1034683568/p/6730869.html Druid数据连接池简介 Druid是Java语言中最好的数据库连接池.Druid能 ...
- SQL面试整理(1)——数据库连接池
在web开发中,如果JSP.Servlet或EJB使用JDBC直接访问数据库,每一次数据访问请求都必须经历建立数据库连接,打开数据库,存取数据库和关闭数据库连接等操作步骤,如果频繁发生这种数据库操作, ...
随机推荐
- Android Studio 使用教程(二十五)之运行Android Studio工程
一.Android虚拟设备入口 上期我们使用了Android Studio创建了HeloWorld工程,要想运行该工程,首先需要一个Android虚拟设备来模拟Android程序的运行. 重新打开An ...
- tomcat启动时自动加载一个类 MyServletContextListener
目的: 我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应.我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作.因此需要tomcat启动时就自动加载一 ...
- unity3D 4.6与上述号码. UI穿透问题,而且不穿透的真机模拟器渗透问题解决
好久没有写博客颓废很长一段时间. . . 不废话. EventSystem.current.IsPointerOverGameObject(); //返回值true 如果是点击UI该.不过貌似没有使用 ...
- Step-By-Step Installation of RAC with RAW Datafiles on Windows 2000
Step-By-Step Installation of RAC with RAW Datafiles on Windows 2000 Purpose This document will pr ...
- C# 从零开始写 SharpDx 应用 控制台创建 Sharpdx 窗口
原文:C# 从零开始写 SharpDx 应用 控制台创建 Sharpdx 窗口 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http ...
- CUDA+OpenCV 绘制朱利亚(Julia)集合图形
Julia集中的元素都是经过简单的迭代计算得到的,很适合用CUDA进行加速.对一个600*600的图像,需要进行360000次迭代计算,所以在CUDA中创建了600*600个线程块(block),每个 ...
- SSH框架的搭建与配置文件的书写格式
通常Java Web 开发的时候,我们一般会采用三大框框架的整合来架构,这样做主要是为方便维护.但是有时候会忘了一些配文件(*.xml)的格式头,这里主要就三大框架Spring.struts.hibe ...
- C# VS 2010创建、安装、调试 windows服务(windows service)
在一个应用程序中创建多个 windows 服务的方法和 1083 的解决办法 错误解决方案 ------------------------------------------------------ ...
- Uniform synchronization between multiple kernels running on single computer systems
The present invention allocates resources in a multi-operating system computing system, thereby avoi ...
- 给WPF示例图形加上方便查看大小的格子之完善版本
原文:给WPF示例图形加上方便查看大小的格子之完善版本 去年10月份, 我曾写过一篇"给WPF示例图形加上方便查看大小的格子"的BLOG(http://blog.csdn.net/ ...