博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Set Nocount ON的性能 |c#调用存储过程的返回值总是-1
阅读量:6243 次
发布时间:2019-06-22

本文共 1380 字,大约阅读时间需要 4 分钟。

 

也许因为它太过于简单,自己一直没能好好关注这个语句,只记得"只是"提高点性能而已.有时会在存储过程中写上几句,有时也会懒得去敲这几个字母.但是.他们SET NOCOUNT ON 和SET NOCOUNT OFF 之间到底有多大的区别吗?前天一时好奇.终于想弄清楚他们之间性能有多大区别.在google一遍,找了几篇文章.我们可以得出一些结论.

(NOCOUNT对ADO.NET影响多大)by Jon Galloway
在文章的评论有一段测试的代码,大家可以复制到查询分析器进行测试.基本上,SET NOCOUNT ON比OFF更快点(但我测试的结果不是很理想,基本上二者相差不是太大,更夸张是文章下面的评论:
I want to share my experience with NOCOUNT.
A stored procedure who joins a few tables with more than 100.000 rows is very slow if you run it with ADO.NET and with option NOCOUNT ON. By setting NOCOUNT OFF the same procedure will be 10 times faster.
There is no difference if you execute this procedure from the Management Studio with NOCOUNT OFF or ON
MY GOD!
基本上他们的结论是:使用NOCOUNT能够减少网络的传输.当我们SET NOCOUNT ON时执行的存储过程每执行sql语句(像 SELECT, INSERT, UPDATE, DELETE)时会忽略向客户端发送DONE_IN_PROC消息.
如果我们判断Update更新数据是否成功时,最简便的方法就是ExecuteNonQuery()>0.在使用SET NOCOUNT ON时,ExecuteNonQuery总是返回-1.一个很好的解决方法就是使用out parameter方式来输出是否成功 .
另外有一篇是一篇不错的文章.非常值得一读.

原文地址:http://www.cnblogs.com/cnzc/archive/2007/09/01/878434.html

--------------------------------------------------------------------------

   public virtual int GetMenuByRID(Nullable<int> rID)

        {
            var rIDParameter = rID.HasValue ?
                new ObjectParameter("RID", rID) :
                new ObjectParameter("RID", typeof(int));
    
            return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("GetMenuByRID", rIDParameter);
        }

ObjectContext.ExecuteFunction 这个返回的是影响的行数 

你可能感兴趣的文章
vs2010下release版本调试设置
查看>>
Windows连接Linux虚拟机里面的Docker容器
查看>>
MYSQLDUMP参数详解(转)
查看>>
SLA
查看>>
MyProject / FuzzyPages | Elias的个人主页
查看>>
三子棋局-挑战你的逻辑思维
查看>>
Linux 安装 MySQL / MySQL 主从备份
查看>>
python调用linux shell脚本,并返回结果一例
查看>>
IT的一些常识
查看>>
无边框Winform 简单实现拖动
查看>>
潜移默化学会WPF--Border,焦点移动
查看>>
css解决span宽度问题
查看>>
调频广播六十年
查看>>
android sdk 如何重新生成debug.keystore
查看>>
黑马程序员-JAVA基础-练习之存储学生信息
查看>>
基于FPGA的跨时钟域信号处理——同步设计的重要
查看>>
【SAP HANA】关于SAP HANA中Analytic View创建、激活状况下在系统中生成对象的研究...
查看>>
ubuntu 12.04 ubuntu System program problem detected 解决方法
查看>>
c++智能指针《一》 auto_ptr
查看>>
我的代码观——关于ACM编程风格与librazy网友的对话
查看>>