|
0
|
| VA systems engineer · 技术社区 · 7 年前 |
|
1
1
我认为这里的经验法则是,如果它不在一个循环中并进行计算,那么它可能是IO限制的。任何访问网络资源、文件系统或等待设备响应的操作都可能是IO 此外,并非程序中的所有内容都会占用CPU时间。当线程尝试从磁盘上的文件读取数据或通过网络发送TCP/IP数据包时,它所做的唯一事情就是将实际工作委托给设备、磁盘或网络适配器,并等待结果。 花一个线程的时间等待是非常昂贵的。即使线程处于休眠状态,并且在等待结果时不消耗CPU时间,它也没有真正得到回报,因为这是对系统资源的浪费。 您的请求是否为IO?DB有点模糊,但答案是肯定的。 TPL数据流 或者,您只是不想创建线程或使用资源等待IO绑定的任务完成
因此,异步/等待模式运行良好,或者您也可以使用TPL数据流块。前提是,你不会创建大量的任务,而这些任务就在那里等待着你。具有
实例
|
|
|
2
0
数据存储在数据库服务器上的磁盘上,因此大部分IO将在那里进行,数据库引擎在那里查询数据并将数据返回给调用者(您的应用程序)。在从SQL Server检索到所有批数据之前,连接的两端都会有CPU和内存使用情况,此时您将对应用程序内存中的这些行进行操作。 因此,您的机器没有受到IO攻击;这种情况发生在数据存在的地方。然而,您的代码导致IO发生在数据库服务器上,因此请从中解释您将要解释的内容。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |