SET NOCOUNT ON 真的能带来那么大的性能差异吗

2023-11-27

In this article,作者认为存在与以下相关的材料开销SET NOCOUNT ON并且“通过消除网络的额外开销,可以极大地提高数据库和应用程序的整体性能”

作者引用了从 2000 年到 2005 年默认存储过程模板的更改,并表示“微软甚至意识到了这个问题”,从而促使了该模板的更改。

是否有人有确凿的证据支持或反驳通过设置 NOCOUNT ON 所声称的性能增益。


在某些情况下,SET NOCOUNT ON 是强制的。当设计基于通过 SqlClient 的 BeginExecuteXXX 方法利用线程池的异步处理的高性能中间层时,行计数存在非常严重的问题。 BeginExecute 方法一旦完成first响应数据包由服务器返回。但是,当调用 EndExecuteXXX 时,这会在调用完成时在非查询请求上完成。每个 rowcount 响应都是一个响应。当处理中等复杂的过程时,第一行计数可能会在 5-10 毫秒内返回,而调用会在 300-500 毫秒内完成。它不是在 500 毫秒后回调提交的异步请求,而是在 5 毫秒后回调,然后回调在 EndExecuteXXX 中阻塞 495 毫秒。结果是异步调用过早完成,并在 EndExecuteNonQuery 调用中阻塞线程池中的线程。这会导致线程池饥饿。我发现高性能系统只需在特定场景中添加 SET NOCOUNT ON,即可将吞吐量从每秒数百个调用提高到每秒数千个调用。

鉴于对于大规模/高吞吐量的中间层处理异步调用是唯一的方法,NOCOUNT 几乎是一个强制性要求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SET NOCOUNT ON 真的能带来那么大的性能差异吗 的相关文章

  • 样式组件如何影响性能?

    使用样式组件是否比样式表更会降低 Web 应用程序的速度 如果我关心性能并且没有任何依赖于 props 的样式 我是否应该放弃样式组件并使用样式表 当您有很多小组件时 同时使用样式化组件渲染 性能开销可能会很有意义 绝对值得测试以删除小元素
  • 从 JavaScript 数组中获取对象值的最大值和最小值

    从 JavaScript 对象数组中获取最大值和最小值的最佳方法是什么 Given var a x 1 y 0 x 1 y 10 x 12 y 20 x 61 y 10 var minX Infinity maxX Infinity for
  • 非阻塞方法中的饥饿

    一段时间以来 我一直在阅读有关非阻塞方法的内容 这是一段所谓的无锁计数器的代码 public class CasCounter private SimulatedCAS value public int getValue return va
  • iOS 自定义单元格设计放在哪里? awakeFromNib 还是 cellForRowAtIndexPath?

    所以 基本上我用笔尖做了一个定制单元 希望我应用一些定制设计 比如颜色和阴影 我发现了两种应用样式的方法 awakeFromNib override func awakeFromNib super awakeFromNib Containe
  • 嵌套辅助函数和性能

    嵌套辅助函数对于使代码更易于理解非常有用 谷歌甚至建议在他们的应用程序中使用嵌套函数时尚指南 https google styleguide googlecode com svn trunk javascriptguide xml Nest
  • 对于双核手机,availableProcessors() 返回 1

    我最近购买了一部 Moto Atrix 2 手机 当我尝试查看手机中的处理器规格时 Runtime getRuntime availableProcessors 返回 1 proc cpuinfo 也仅包含有关处理器 0 的信息 出于好奇
  • Java ByteBuffer 性能问题

    在处理多个千兆字节文件时 我注意到一些奇怪的事情 似乎使用文件通道从文件读取到使用 allocateDirect 分配的重用 ByteBuffer 对象比从 MappedByteBuffer 读取要慢得多 事实上它甚至比读取到字节还要慢使用
  • 找到对应的未经V8优化的JS代码源

    我尝试优化 node js 应用程序的性能 因此我正在分析 V8 的 JIT 编译器的行为 当通过运行应用程序时node trace deopt trace opt code comments print optcode 输出包含许多重复出
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 与保留模式 GUI 相比,使用立即模式 GUI 对性能有何影响?

    我目前正在开发一个标准的 Windows 桌面应用程序 标准意味着没有花哨的东西 只是按钮 文本 滑块等 在研究了一些 GUI 框架并被拒绝后 我决定自己编写一个 GUI 框架他们全部 由于这是一个业余爱好项目 我也愿意尝试 并决定将 GU
  • 为什么动态 qml 对象的创建如此缓慢,有哪些合理的替代方案?

    我想要实现的目标类似于棋盘游戏 有一个100 100的网格 放在一个Item它驻留在一个Flickable 游戏板 的各个矩形都是 svg 图像 目前大约有 20 种 可能会增加到数百种 作为基准测试 我只是尝试用元素填充 世界 Compo
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 到 ToList() 还是不到 ToList()?

    给定一个在记忆中 不是 LINQ to SQL 类列表 List
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • VBS 与 PowerShell:哪个更轻?

    如果我需要一个可以在系统中以最少的努力执行的脚本 我会选择哪个 通过查看任务管理器中的进程 内存 私有工作集 wscript exe 2 068Kpowershell exe 33 144K Thanks 这里存在工作守恒定律 如果机器做的
  • 如何将图片存储在图像列中?

    我有一个用户表 Name varchar 20 Picture image 我想将图像存储到 Picture 列中 如何使用 SQL 脚本实现此目的 以下是将图像存储到 sql server 的示例代码 SqlConnection conn
  • 如何加快 jar 签名者的速度?

    我使用 ant 来签署我的 jars 以进行网络启动部署 Ant signjar 在 Web 启动签名时非常慢 如何加快签名过程 我找到了一种可能的解决方案 早些时候 在构建脚本 ant signjar 中 按顺序调用所有 jar 我们使用
  • 如何在 sql 2005 或 2008 中使列区分大小写

    是否可以根据列更改默认排序规则 我想让 1 列区分大小写 但其他所有列都不区分大小写 ALTER TABLE ALTER COLUMN允许更改单个列的排序规则 alter table Foo alter column Bar ntext c
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest

随机推荐

  • Android NDK Native方法未找到错误

    我正在尝试使用本机代码构建 android 应用程序 所以我想测试 ndk 是否成功运行 当我尝试运行我的第一个 hello world 项目时 日志猫说 01 21 23 30 06 780 E AndroidRuntime 939 FA
  • 打开受密码保护的 sqlite 数据库

    我创建了一个受密码保护的 sqlite 数据库 我希望能够查看数据库 以便在项目开发过程中检查是否正确插入了内容 我已经下载了 sqlite 数据库浏览器 但这似乎不允许您打开加密数据库 有没有一种方法可以打开数据库文件 感谢您的任何帮助
  • 存在哪些 CLR/.NET 字节码工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我非常了解用于操作 生成 反编译 JVM 字节码的 Java 工具 ASM cglib jad 等 CLR 字节码有哪些类似的工具 人们会为 CLR
  • 如何导入单个 Lodash 函数?

    使用 webpack 我正在尝试导入isEqual since lodash似乎正在进口一切 我尝试执行以下操作但没有成功 import isEqual from lodash import isEqual from lodash lang
  • 当 JS 需要 PHP 变量时,如何将 javascript 与 PHP 分开?

    下面是我在 jquery 和 PHP 中看到的代码的一小段 请注意第 5 行的 PHP 部分 我通常将 javascript 放入单独的文件中 那么我如何才能将 JS 保存在单独的文件中 但在需要时仍然使用 PHP 如下所示 when th
  • [[maybe_unused]] 在成员变量上,GCC 警告(错误地?)该属性被忽略

    在下面的example struct Foo maybe unused int member 1 void bar maybe unused int local 0 int main int argc char argv Foo f f b
  • 选择每组中倒数第二条记录

    这里有张桌子Remark包含如下所示的数据 SerialNo RemarkNo Desp 10 1 rainy 10 2 sunny 11 1 sunny 11 2 rainy 11 3 cloudy 11 4 sunny 12 1 rai
  • “无法锁定变量”SSIS 错误

    对于每小时运行的预定 SSIS 包 我随机收到错误 最有趣的是 如果我删除检查点文件并再次运行该包 它工作正常 但错误可能会在将来的运行中出现 我不知道为什么会发生这种情况 这是完整的错误消息 以用户身份执行 UserNameChanged
  • 多维数组的嵌套 ng-repeat

    我在尝试着使用 ng repeat 指令在 html 中显示二维数组 我可以显示第一个维度 表行 但第二个维度 表数据 不起作用 我见过很多使用对象 JSON 键值数据结构的解决方案 但我找不到有效的东西对于仅包含其他数组的数组 以下是一些
  • 在 pandas python 中将指数或科学数转换为整数

    我是Python的初学者 试图从数据集中获取具有最高idmb评级和最高总总额的行 但我的gross total值不是整数 我如何将其转换为整数 以及如何获得执行统计功能的特定值 import pandas as pd dataset pd
  • 检测挤压的最简单方法

    这是一个WEB APP不是本机应用程序 请不要使用 Objective C NS 命令 所以我需要检测 iOS 上的 捏 事件 问题是我看到的用于执行手势或多点触摸事件的每个插件或方法 通常 都是使用 jQuery 并且是针对阳光下每个手势
  • 将二进制文件安装到 /bin、/sbin、/usr/bin 和 /usr/sbin 中,与 --prefix 和 DESTDIR 交互

    大多数使用 Autotools 的软件包都是用户级实用程序 或者至少具有足够高的级别 可以完全在 usr 或低到完全低于 usr 我正在编写一个包 需要将一些文件安装到 bin 一些进入 sbin usr bin and usr sbin
  • 安全且区域设置敏感地解析数字

    Java s NumberFormat1 非线程安全 可以通过ThreadLocal 2 不方便正确使用对于最简单的用例 当我知道字符串是否应包含 int long 或 double 并且想要一个如下 API 时 int parseInt
  • Python:在 Windows 上的 Ubuntu 上通过 Bash 运行 pygame

    我最近安装并一直在玩Windows 上 Ubuntu 上的 Bash 在大多数情况下 它效果很好 我正在尝试通过 BUW 运行 pygame 脚本 但它不会在弹出窗口中渲染图形 相反 它似乎包含在 bash 窗口中 如下所示 这是 pyga
  • Qt Designer - 如何将信号连接到静态函数?

    好的 我正在使用 Qt Designer 构建 GUI 我已经设法弄清楚如何制作菜单栏 并向菜单栏添加了一些操作 但现在我需要连接这些操作以使它们执行某些操作 具体来说 在我的文件菜单上 我有简单的打开操作 我希望此操作运行一个调用我的 Q
  • Docker - 容器和主机之间的 ulimit 差异

    我以为docker容器与主机共享这些属性 然而 一方面docker楼主 有这些ulimit设置 ulimit a core file size blocks c 0 data seg size kbytes d unlimited sche
  • 我可以创建一个“除内部类型之外的密封类型”吗

    我想创建一个可以由同一程序集中的类型继承的类型 但不能从程序集外部继承 我确实希望该类型在程序集外部可见 这可能吗 您可以将构造函数设为内部 public class MyClass internal MyClass 每个从基类派生的类都必
  • 如何在 PHP 中对 UTF-8 字符串数组进行排序?

    需要按 utf 8 对单词进行排序的帮助 例如 我们有来自比利时的 5 个城市 array array Borgloon Thuin Lennik ghez e Aubel sort array Expected Aubel Borgloo
  • 如何使用Word Automation在段落中添加下标字符?

    我正在开发一个 C 程序 该程序使用 Microsoft Word 14 0 对象库创建 doc 文件 向其中添加段落并保存 有一个带有按钮的小表单 可以执行所描述的操作 请参阅下面的代码 这部分没有问题 Problem 创建的 Word
  • SET NOCOUNT ON 真的能带来那么大的性能差异吗

    In this article 作者认为存在与以下相关的材料开销SET NOCOUNT ON并且 通过消除网络的额外开销 可以极大地提高数据库和应用程序的整体性能 作者引用了从 2000 年到 2005 年默认存储过程模板的更改 并表示 微