gpt4 book ai didi

sql-server - ExecuteReaderAsync 导致 sql 查询需要更长时间才能完成?

转载 作者:行者123 更新时间:2023-12-01 06:19:40 26 4
gpt4 key购买 nike

我有这个由多个客户端进程共享的 SQL 服务器实例。我希望查询以尽可能少的时间完成。

假设一个调用需要从这个共享的 Sql Server 读取 1k 到 10k 条记录。我的自然选择是使用 ExecuteReaderAsync 来利用异步优势,例如重用线程。

我开始想知道异步是否会带来一些开销,因为每次调用 ExecuteReaderAsync 时执行可能会停止和恢复。确实如此,与使用 ExecuteReader 的实现相比,似乎完成查询的总时间会更长。这有任何意义吗?

最佳答案

无论您使用同步还是异步来调用 SQL Server,对于 SQL Server 所做的工作以及 ADO.NET 为序列化和反序列化请求和响应所做的 CPU 密集型工作都没有区别。所以无论你选择什么,差异都会很小。

使用 async 不是为了节省 CPU 时间。它是关于节省内存(更少的线程堆栈)以及在 UI 应用程序中拥有一个很好的编程模型。

事实上,据我所知,异步永远不会节省 CPU 时间。它增加了开销。如果要节省 CPU 时间,请使用同步方法。

在低并发工作负载中使用异步的服务器上没有任何值(value)。它增加了开发时间和 CPU 成本。

关于sql-server - ExecuteReaderAsync 导致 sql 查询需要更长时间才能完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com