内容显示页
 
类别:.Net + C# | 浏览(59) | 2008-8-29 9:39:05 | 关闭广告

我现在使用一个组件
http://www.cnblogs.com/yueue/archive/2007/05/13/745055.html
但发现一个问题,不知道有没有影响,
我以前用vbs时,如果conn.open后做其它操作都很快,但conn.open这个过程很慢,而我看到这个程序里,每执行一次函数如:
        /// <summary>
        /// 执行数据库命令返回受影响的行数
        /// </summary>
        /// <param name="SQLText">SQL语句 </param>
        /// <returns>受影响的行数 </returns>
        public int ExecuteNonQuery(string SQLText)
        {
            if (IsProcedure(SQLText)) { mCommand.CommandType = CommandType.StoredProcedure; } else { mCommand.CommandType = CommandType.Text; }
            mCommand.CommandText = SQLText;
            try
            {
                mCommand.Connection.Open();
                return mCommand.ExecuteNonQuery();
            }
            finally
            {
                mCommand.Connection.Close();
                ClearParameters();
            }
他都会先conn.open执行完后再conn.close一次,

现在的问题是:如果我一页要执行10多条这个函数,每次都open后再close会不会影响执行效率,影响有多大?
因为以前的VBS我感觉影响非常大,而听说.net 有连接池,即便我close了,下次链接时open会从池里取,原不是像第一次那样执行,所以速度不会有什么影响?请问是这样吗?麻烦各位指点一二.


csdn上的回答:

又见connection忧虑贴

mCommand.Connection.Close();

不是把连接真正的关闭,而是把连接归还给连接池。


mCommand.Connection.Open(); 其实就是从连接池取连接

经测试:

效率没有影响,不管是连接远程还是连接本地数据库进行1000次写入,结果都只是差几百毫秒,

以前没考虑这个问题,今天同事提到,我才想到这问题,没想到Microsoft都已经把这问题给解决了。

而我上面提到的vbs频繁Conn.Open及Conn.Close对程序效率影响很大是因为那个年代还没有连接池这个概念,所以速度相差很大。

 


引用本页地址:http://www.yongfa365.com/item/conn.open.conn.close.html
 
 
相关链接
 
网友评论:
姓名: 记住我
网址:
邮箱:
内容:
验证码:  验证码图片看不清? 换张图试试
 
   
 
 
文章分类
 
   

Power by :柳永法(yongfa365)'Blog | Model by :hibaidu | CSS by:众网友 | 京ICP备07011491号  QQ:64049027  E-mail:64049027qq.com

本空间赞助商:北京中科兴联信息技术有限公司