澳门威利斯人_威利斯人娱乐「手机版」

来自 办公软件 2019-09-28 22:16 的文章
当前位置: 澳门威利斯人 > 办公软件 > 正文

NOCOUNT优化存储过程,在编写存储过程时使用

使用 SET NOCOUNT ON
暗中认可情形下,存款和储蓄进程将回到经过中各种语句影响的行数。假诺无需在应用程序中使用该音讯(大许多应用程序并无需),请在仓储进程中应用 SET NOCOUNT ON 语句以结束该作为。根据存款和储蓄进程中含有的震慑行的口舌的数据,那将去除顾客端和服务器之间的贰个或多少个来回进度。就算那不是大标题,但它可以为高流量应用程序的性格产生负面影响。
create procedure test_MyStoredProc @param1 int
as
set nocount on

sql server中的 SET NOCOUNT ON 的含义

历次大家在运用查询分析器调节和测量检验SQL语句的时候,经常拜候到部分新闻,提示大家前段时间有些许个行受到了影响,那是些什么消息?在我们调用的时候这么些音信有用吗?是不是能够关闭呢? 

答案是那么些音信在大家的客商端的应用程序中是尚未用的,这么些新闻是积攒进程中的各个语句的DONE_IN_PROC 信息。 

大家得以应用SET NOCOUNT 来支配那么些音信,以落成进步程序质量的指标。 

MSDN中帮忙如下: 
 
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那样的话,以到达优化存款和储蓄过程的目标。 

再有一种说法:
前台通常是一个赶回就当壹个结果集, 不管那个再次回到是结果集, 还是操作的申报音信. 
 
为了确定保证前台获得的只是真实的记录集, 实际不是举报消息, 由此得使用 set nocount on
多说两句: 

1:在查阅SqlServer的协助的时候,要注意“权限”这一节,因为有些语句是亟需一定的权能的,而大家往往忽视。 

2:@@ROWCOUNT是回到受上一语句影响的行数,包涵找到记录的数目、删除的行数、更新的记录数等,不要感觉只是回去搜索的记录数据,何况@@ROWCOUNT要紧跟必要看清语句,不然@@ROWCOUNT将重临0。

转自:

历次大家在使用查询剖判器调节和测量试验SQL语句的时候,平常会看见有的新闻,提示大家当下有个别许个行受到了震慑,那是些什么消息?在我们调用的时候那些新闻有用吗?是或不是可以关闭呢?

答案是这个音讯在大家的客户端的应用程序中是未曾用的,这个消息是累积进度中的各样语句的DONE_IN_PROC 信息。

大家得以行使SET NOCOUNT 来支配这一个音讯,以达到提升程序质量的目标。

MSDN中帮助如下:
 
SET NOCOUNT
使再次来到的结果中不包涵关于受 Transact-SQL 语句影响的行数的新闻。

语法
SET NOCOUNT { ON | OFF }

注释
当 SET NOCOUNT 为 ON 时,不回去计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,再次来到计数。

本文由澳门威利斯人发布于办公软件,转载请注明出处:NOCOUNT优化存储过程,在编写存储过程时使用

关键词: 澳门威利斯人 数据库 SqlServer