SQL Server中通过设置SET NOCOUNT来优化存储过程
SET NOCOUNT 使返回的结果中不包含有关受Transact-SQL 语句影响的行数的信息。
语法:SET NOCOUNT { ON | OFF }
注释:
当SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当SET NOCOUNT 为OFF 时,返回计数。
即使当SET NOCOUNT 为 ON 时,也更新@@ROWCOUNT 函数。
当SET NOCOUNT 为ON 时,将不给客户端发送存储过程中的每个语句的DONE_IN_PROC 信息。当使用Microsoft SQL Server 提供的实用工具执行查询时,在Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
权限:SET NOCOUNT 权限默认授予所有用户。
结论:我们应该在存储过程的头部加上SET NOCOUNT ON 这样的话,在退出存储过程的时候加上SET NOCOUNT OFF这样的话,以达到优化存储过程的目的。
说明:
1:在查看SQL Server帮助的时候,要注意“权限”这一节,因为某些语句是需要一定的权限的,而我们往往忽略。
2:@@ROWCOUNT是返回受上一语句影响的行数,包括找到记录的数目、删除的行数、更新的记录数等,不要认为只是返回查找的记录数目,而且@@ROWCOUNT要紧跟需要判断语句,否则@@ROWCOUNT将返回0。
3:如果使用表变量,在条件表达式中要使用别名来替代表名,否则系统会报错。
4:在CUD类的操作中一定要有事务处理。
5:使用错误处理程序,用来检查@@ERROR 系统函数的T-SQL语句(IF) 实际上在进程中清除了@@ERROR 值,无法再捕获除零之外的任何值,必须使用SET或SELECT立即捕获错误代码。
关于SQL Server数据库中SET NOCOUNT的用法的介绍就介绍到这里了,希望本次的介绍能够对您有所收获!
SQL Server中通过设置SET NOCOUNT来优化存储过程相关推荐
- SQL server中如何设置外键
以前创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只有主键没有外键时不行的. 建外键的前提是此外键必须是另外一个表的主键.建外键的步骤: 第一步打开要建外键表的设计器, ...
- 如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件
如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件 察看本文应用于的产品 文章编号 : 312839 最后修改 : 2006年12月21日 修订 : 10.1 本页 概要 SQ ...
- nocount on_在SQL Server中设置NOCOUNT ON语句的用法和性能优势
nocount on Have you ever noticed SET NOCOUNT ON statement in T-SQL statements or stored procedures i ...
- pads中如何设置等长_如何在SQL Server中设置扩展,监控系统性能
dbForge Studio for SQL Server为有效的探索.分析SQL Server数据库中的大型数据集提供全面的解决方案,并设计各种报表以帮助作出合理的决策. dbForge Studi ...
- 通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试...
通过 Visual Studio 的 Professional 和 Team System 版本,我们可以对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试,这样我们可以象调试应 ...
- 在SQL Server中配置索引创建内存设置的最佳实践
介绍 (Introduction) The Index Create Memory setting is an advanced SQL Server configuration setting wh ...
- sql server中datetime默认值设置和日期函数
sql server中datetime默认值设置和日期函数 select CONVERT(varchar, getdate(), 120 ) -----------------> ...
- 在SQL server中设置时间格式
在SQL server中设置时间格式 2008-01-13 12:21:02 今天在vs中更新sqlserver,却发现我vs中是当前时间,insert到数据库中却变成了1905年,搞了半天,原来是s ...
- 在SQL server中设置表的自动编号功能
我们都知道很多的数据库软件都为表提供了自动编号的功能,这对于进行有些表的功能是十分有用 的,可以减少很多不必要工作,由于SQL server是我最近才使用的所以,在这个过程中遇到了一些问题,但是经过查 ...
最新文章
- 【深度学习笔记】F1-Score
- 使用openssl生成ssl(https)证书
- Redis常用命令之操作List类型
- 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析
- MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化
- python物理模拟_在Python游戏中模拟重力【Programming(Python)】
- (转载)Socket编程基本流程实践
- 【深度学习】深度学习门前徘徊——正向传播
- 有大招儿?请收下这份关于数据与智能的晋级攻略!
- 前端学习笔记--百度2010校园招聘题目
- i510400和i59400f哪个好?有什么区别
- VSCode离线汉化教程
- JavaScript实现随机抽奖功能
- 如何免费下载知网论文
- 如何用计算机制作海报,用电脑怎么做海报_电脑用什么软件做海报
- Android自定义控件--仿安全卫士中的一键加速【圆形进度条】
- 软件开发模型之迭代模型
- LINUX磁盘分区挂载笔记
- Python 自然语言处理(基于jieba分词和NLTK)
- 爬虫的基本原理:网络爬虫、爬虫基本流程、解析方式、保存数据