MSSQL教程之SET NOCOUNT 的用法
支持多线程,充分利用CPU资源SETNOCOUNT使前往的了局中不包括有关受Transact-SQL语句影响的行数的信息。
语法
SETNOCOUNT{ON|OFF}
正文
当SETNOCOUNT为ON时,不前往计数(暗示受Transact-SQL语句影响的行数)。当SETNOCOUNT为OFF时,前往计数。
即便当SETNOCOUNT为ON时,也更新@@ROWCOUNT函数。
当SETNOCOUNT为ON时,将不给客户端发送存储过程当中的每一个语句的DONE_IN_PROC信息。当利用Microsoft®SQLServer™供应的有用工具实行查询时,在Transact-SQL语句(如SELECT、INSERT、UPDATE和DELETE)停止时将不会在查询了局中显现"nnrowsaffected"。
假如存储过程当中包括的一些语句其实不前往很多实践的数据,则该设置因为大批削减了收集流量,因而可明显进步功能。
SETNOCOUNT设置是在实行或运转时设置,而不是在剖析时设置。
权限
SETNOCOUNT权限默许授与一切用户。
示例
下例在osql有用工具或SQLServer查询剖析器中实行时,可避免显现有关受影响的行数的信息。
USEpubsGO--Displaythecountmessage.SELECTau_lnameFROMauthorsGOUSEpubsGO--SETNOCOUNTtoONandnolongerdisplaythecountmessage.SETNOCOUNTONGOSELECTau_lnameFROMauthorsGO--ResetSETNOCOUNTtoOFF.SETNOCOUNTOFFGO
注重:
当SETNOCOUNT为ON时,不前往计数(暗示受Transact-SQL语句影响的行数)。当SETNOCOUNT为OFF时,前往计数。
即便当SETNOCOUNT为ON时,也更新@@ROWCOUNT函数。
当SETNOCOUNT为ON时,将不给客户端发送存储过程当中的每一个语句的DONE_IN_PROC信息。当利用Microsoft where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 一个是把SQL语句写到客户端,可以使用DataSet进行加工; 我个人认为就是孜孜不懈的学习 不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 原来公司用过MYSQL自己也只是建个表写个SQL
页:
[1]