gpt4 book ai didi

SqlDataReader/DbDataReader 实现问题

转载 作者:行者123 更新时间:2023-12-04 16:01:49 26 4
gpt4 key购买 nike

有谁知道 DbDataReaders 是如何工作的。我们可以以SqlDataReader为例。

当您执行以下操作时

cmd.CommandText = "SELECT * FROM Customers";

var rdr = cmd.ExecuteReader();

while(rdr.Read())
{
//Do something
}

数据读取器是否将所有行都保存在内存中,或者它只是抓取一个,然后当调用 Read 时,它会去数据库并抓取下一个吗?似乎只将一个带入内存会带来不好的性能,但是将它们全部带入会使调用 ExecuteReader 需要一段时间。

我知道我是对象的消费者,他们如何实现它并不重要,但我只是好奇,我想我可能会在 Reflector 中花几个小时来了解它在做什么,所以我想问问可能知道的人。

我只是好奇是否有人有想法。

最佳答案

如上所述 here :

Using the DataReader can increase application performance both by retrieving data as soon as it is available, and (by default) storing only one row at a time in memory, reducing system overhead.

据我所知,这是每个读者在 .NET 框架中的工作方式。

关于SqlDataReader/DbDataReader 实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515681/

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