需要帮助!无法解决这个问题,我遇到了硬件限制 - 页 3

 

对不起,傻瓜,x64有限制吗? 这是我遇到的第一篇文章(好吧,不是第一篇,好吧)x64系统下SQL SERVER 2008的内存限制--基本吃多少内存就有多少。

也许你应该试一试。

ps也许有用移除32位Windows 8 / 8.1上的4GB内存限制

 
komposter:

有大量的信息(大约20GB的文本文件)。

那么,为什么是文本呢? 首先将数据转换成二进制形式不是更容易吗? 然后你可能得到一个合适的尺寸。

令人沮丧的是,有这么多的信息... 如果是10G,我会把它移到RAM-磁盘(事实上是移到内存中),并尽可能多地读取。

 
meat:

那么,为什么是文本呢? 首先将数据转换为二进制不是更容易吗? 然后你就会知道大小是否合适。

因此,看起来20G并不是极限。
 

升级到64位版本--将提供高达16TB的内存。

以二进制形式存储文件,以便更快地阅读。

根据RAM的大小,分块处理文件。

尽量对数据进行预处理,以消除重复的信息。

 
komposter:

有大量的信息(大约20GB的文本文件)。

...

如果有必要把这些顺序过一遍,我会这样做。但你必须反复经历它们,每次都要往前移一点。

...

如果你把它们分成几块处理呢?

读取两个区块,每个区块为1Gb。第一块被处理后,在下一次传递中,从第二块中添加"......向前移动一点"。同时切断第一块的开头(不再需要,因为它总是"......向前移动一点"。 当第二块读完第三块的时候--现在从第三块开始添加"......向前移动一点"。这样一来,RAM中总是有两个块(最大2GB),对硬盘的访问将减少一个数量级。

 
GT788:

升级到64位版本--将提供高达16TB的内存。

以二进制形式存储文件,以便更快地阅读。

根据RAM的大小,分块处理文件。

尽量对数据进行预处理,以消除重复的信息。

这是什么轴/版本? 甚至XPpro x64也支持物理到128和虚拟到16TB。

 
Silent:

这是什么轴/版本? 甚至XPpro x64也支持物理到128和虚拟到16TB。

没错,我发现7的最大容量为192GB。
 
komposter:

有大量的信息(大约20GB的文本文件)。

这些信息由同类的序列组成,大约有一百万个。

有必要反复 浏览所有的序列,并进行一些计算。

首先想到的是读取文件的所有内容,将其填充到结构数组中,并在内存中对其进行操作。

但它出了问题,在下一次调整大小时,MT发誓说 "内存处理程序:不能分配5610000字节的内存"。

Dispatcher显示terminal.exe使用了3.5GB的内存(16个物理的)。我想这是因为该进程只能得到4GB。

EA说 "内存不足 已用4007Mb,可用88Mb,共4095Mb)!!"。

而这仅仅是所需金额的15.3%(而且我希望将来也能增加)。

我已经没有想象力了。

我是否应该尝试以这样的方式重新组成这些序列,使之产生许多片断,但每个片断只包含目前必要的信息?

也尝试压缩数据(我已经在所有可以的地方用char类型转换为浮点数)?但这最多只能给我带来10-20%的收益,而我需要减少一个数量级的数量......。

朋友们,有什么建议吗?我不会生锈)。

而在使用该数据库的方向上有没有看?设置数据库,从一个文本文件中下载数据。你可以事先对数据进行任何汇总,以便将来进行计算。

专家顾问的SQL查询。

DBMS也可以放在一个单独的服务器上,以提高交易站的性能。

 

非常感谢大家的参与!

我现在周末不在线,但我一定会在早上回复大家,并尝试利用这些建议。

 
elugovoy:

你是否考虑过使用一个数据库?建立一个数据库,从一个文本文件向其中加载数据。有可能事先进行某种数据汇总,以便进一步计算。

然后从专家顾问那里进行SQL查询...

DBMS可以安装在一个单独的服务器上以提高性能。

想过了。我对意见感兴趣。

康帕斯

另一个想法是--把所有东西都移到数据库(MySQL?我们的想法是,数据库是为这样的数量和不断的重新登录而准备的。

有什么专家吗?谁有意见?

与读取文件相比,会有什么加速,与在内存中工作相比,会有什么减速?