首页 新闻 赞助 找找看

datatable 的最大行数到底是多少?

0
悬赏园豆:20 [已解决问题] 解决于 2016-04-07 17:33

关于datatable的最大行数,看MSDN文档倒是简单

若要向 DataTable 中添加行,必须先使用 NewRow 方法返回新的 DataRow 对象。NewRow 方法返回具有 DataTable 的架构的行,就像由该表的 DataColumnCollection 定义的那样。DataTable 可存储的最大行数是 16,777,216。有关更多信息,请参见 将数据添加到表中

文档写行数是16,777,216

但当列总数为85列时,行数最多只能为:1048576行,而且不管创建几个datatable,总数只能是1048576行,一旦超过行数,就会在DataTable.NewRow(),是会报错 OutOfMemory的错误,文档中也没写是怎么回事。

请教博友,谢谢了。

Tobin的主页 Tobin | 初学一级 | 园豆:113
提问于:2016-03-25 17:14
< >
分享
最佳答案
0

你的运行内存不足吧!拿一个运存4G和16G或者32G的试试。看看区别。

收获园豆:20
大楚打码人 | 老鸟四级 |园豆:4313 | 2016-03-25 17:20

电脑8G内存,进程到850M就OutOfMemory了,1G都没有上。

Tobin | 园豆:113 (初学一级) | 2016-03-25 17:22

@ToBin: 是64位的系统吗?这我就有点猜不透了。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-03-25 17:29

@ToBin: 刚去网上帮你找了找,貌似目前真没有什么比较好的解决方案。如果能分批次的去处理你的业务逻辑的话,还是按批次来吧!或者适当减少不必用的列。如果按批次来,每次数据使用完就手动GC一下。再继续下一步操作也是可行的。数据超过300M的话感觉就已经很庞大了。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-03-25 17:52

@贫民窟大侠: 是64位系统

Tobin | 园豆:113 (初学一级) | 2016-03-25 19:26

@贫民窟大侠: 实际上是要用sqlbulk批量插入。数据量大,准备一次缓存够了再一次插入数据库。

Tobin | 园豆:113 (初学一级) | 2016-03-25 19:27

@ToBin: 哦,又长姿态了!

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-03-25 20:00
其他回答(2)
0

"实际上是要用sqlbulk批量插入。数据量大,准备一次缓存够了再一次插入数据库。"

熊是怎么死的?死读书不如无书。

 

你在那儿用了两个小时构建一个内存放不下的Datatable,

把数据库服务器晾在那儿吹风,这是体育老师教出来的程序员吗。

爱编程的大叔 | 园豆:30839 (高人七级) | 2016-03-26 09:31

单机软件

支持(0) 反对(0) Tobin | 园豆:113 (初学一级) | 2016-04-07 17:32
0

msdn上面应该是指内存没达到上限的行数

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-26 16:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册