asp.net中从数据库读取数据使用什么方式占用内存小?

zenggezhuang 2011-08-12 11:00:27
之前写的程序使用sqldatareader进行读取的,但是它比较占用内存,不知道该怎么解决这个问题。
...全文
184 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
无爱大叔 2011-08-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sp1234 的回复:]
当你使用DbDataReader的时候,你读取出来的数据保存起来还是立刻就扔掉?

所谓扔掉,比如你只是统计每一行数据的汇总求和,这时候就不会保存每一行数据。反之,假设你要把读取出来的每行数据都保存到其它地方,那么当然你就需要占用内容啦。

最不占用内存的空话就是根本不执行正确的功能。如果离开了你的具体功能,谈DataReader占还是不占内存就太武断了。只有当你根本就是狗熊掰棒子似地可以……
[/Quote]

学习了
  • 打赏
  • 举报
回复
当你使用DbDataReader的时候,你读取出来的数据保存起来还是立刻就扔掉?

所谓扔掉,比如你只是统计每一行数据的汇总求和,这时候就不会保存每一行数据。反之,假设你要把读取出来的每行数据都保存到其它地方,那么当然你就需要占用内容啦。

最不占用内存的空话就是根本不执行正确的功能。如果离开了你的具体功能,谈DataReader占还是不占内存就太武断了。只有当你根本就是狗熊掰棒子似地可以一边读一遍扔掉记录值时,才谈到了“少占内存”的问题。

另外,.net应用程序以申请就是好几M内存,不是因为你用了DataReader它就少申请内存了的。申请大块内存,可以加快基于虚拟机的应用程序的运行速度,所以java、.net等都是申请很大块内存的。而你节省的内存其实意义不大,如果你不能用自己的代码来亲自测试出这种空间和时间的代价到底对于你的应用程序总体上能够产生价值多少的影响,还是不用过于纠结这些。
yangshunyu 2011-08-17
  • 打赏
  • 举报
回复
这两种方式,一种站内存,但是不占数据库
一种占数据库,但是不占内存,
根据实际需求来权衡吧。
我个人觉得多用datareader+repeater。然后做适当的缓存比较好
yangshunyu 2011-08-17
  • 打赏
  • 举报
回复
当然是用datareader占用 的内存小,
所以说使用datareader还是使用dataset 你有必要根据实际情况来权衡一下
datareader 不占用内存,但是他一直和数据库保持连接,知道数据读完,
而dataset完全靠内存,他是从数据库提取出数据之后,就断开数据库连接,保存在内存中。
比如调去几条文章标题列表建议用datareader,datareader照样可以绑定给数据控件。
我这人比较赞成datareader+repeater。
网站数据量不大,访问量不大的话,就可以随便你怎么搞,
现在net程序猿遍地都是,但是真正的高手有几人。一个二个把控件崇拜得跟神一样。
net强大的地方是类库不是控件,别搞错了。使用控件只能做一些粗糙的功能,细致的功能控件无用武之地。
我这么一说估计有很多人又会对我大骂一通了。
无爱大叔 2011-08-17
  • 打赏
  • 举报
回复
reader是最不占内存的,同意楼上的观点。

要看你一次读取多少内容
vrhero 2011-08-17
  • 打赏
  • 举报
回复
reader能占多少内存....占内存的必然是你的数据处理方式,跟reader有个蛋关系...
xingxuejiao 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
你读多少数据 。。?
[/Quote]
我也有同样的问题,我做的是个小网站,没多少数据的,不知道哪的问题
子夜__ 2011-08-12
  • 打赏
  • 举报
回复
你读多少数据 。。?

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧