首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为所有查询设置NOCOUNT ON

如何为所有查询设置NOCOUNT ON
EN

Stack Overflow用户
提问于 2018-05-28 17:18:46
回答 2查看 912关注 0票数 0

我有一个包含许多SQL查询的复杂应用程序。我最近发现,当不需要计数时,SET NOCOUNT ON可以提高服务器的性能和带宽。有没有一种方法可以在不修改数百行代码的情况下为所有查询设置SET NOCOUNT ON?(使用SQL server settigns或以编程方式)

我当前的代码如下所示:

代码语言:javascript
复制
Set con = Server.CreateObject("ADODB.Connection")
con.connectionString="DSN=MYDSN"
con.execute "update members set title='something'"
EN

回答 2

Stack Overflow用户

发布于 2018-05-28 17:40:46

Stack Overflow用户

发布于 2018-05-29 05:42:47

可以通过打开bit 512 of user options为所有会话全局设置NOCOUNT ON

代码语言:javascript
复制
DECLARE @UserOptions int = (
    SELECT CAST(value_in_use AS int) | 512
    FROM sys.configurations
    WHERE name = 'user options');
EXEC sp_configure 'user options', @UserOptions;
RECONFIGURE;

也就是说,我对这样做很谨慎,因为它会影响服务器上的所有会话。这可能会破坏期望默认会话设置且未显式指定SET NOCOUNT OFF的现有应用程序和工具。

对于您提出的有关使用SET NOCOUNT ON的所谓性能优势的问题,有许多评论。性能的好处,或不,将在很大程度上取决于客户端API以及如何在应用程序代码中使用它(例如,服务器游标与客户端游标)。我们不应该一味地认为SET NOCOUNT ON会提高性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50562951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档