zoukankan      html  css  js  c++  java
  • 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;
    }

           发现了,这个思想误区,后面的问题就迎刃而解了。

           以上,是我最近的一点认知,写上来为了更好的提醒自己,尽量少犯点错,如有不当之处,还望各位同仁给点意见和建议,我将不胜感激。

  • 相关阅读:
    struts2 + ajax(从后台获取json格式的数据返回到前端,然后前端用jquery对json数据进行解析)
    request 中文乱码问题
    Eclipse 支持jQuery 自动提示
    基于按annotation的hibernate主键生成策略
    微信创建菜单操作
    百度转换经纬度为地址
    微信工具类(常用接口)的整理
    微信URL有效性验证
    原型模式 (原型管理器)
    发送邮件 Email(java实现)
  • 原文地址:https://www.cnblogs.com/towerking/p/3146814.html
Copyright © 2011-2022 走看看