Precisa de ajuda! Não consigo resolver o problema, estou atingindo limitações de hardware - página 3

 

Desculpe, há uma limitação em x64? aqui está o primeiro artigo que encontrei (bem, não o primeiro, ok) limitação de RAM para SQL SERVER 2008 sob sistema x64 - tanta RAM quanto a base come.

Talvez você devesse tentar.

ps talvez seja útil Remover limite de memória de 4 GB em Windows 8 / 8.1 de 32 bits

 
komposter:

Há uma grande quantidade de informações (cerca de 20 GB em um arquivo de texto ).

Então, por que escrever? Não seria mais fácil começar convertendo os dados em formato binário? Então você pode obter um tamanho adequado:

É frustrante a quantidade de informação que existe... Se fosse 10 GiG, eu o moveria para o disco RAM (na verdade, para a memória) e leria o máximo que pudesse.

 
meat:

Então por que enviar um texto? Não seria mais fácil começar convertendo os dados em binários? Então você verá se o tamanho está correto:

Portanto, parece que 20 gigabytes não é o limite.
 

Atualização para a versão de 64 bits - até 16TB de RAM estará disponível.

Armazene o arquivo em formato binário para uma leitura mais rápida.

Processar o arquivo em pedaços de acordo com o tamanho da RAM.

Tente pré-processar dados para eliminar a duplicação de informações.

 
komposter:

Há uma grande quantidade de informações (cerca de 20 GB em um arquivo de texto).

...

E se fosse necessário passar por estas seqüências uma vez, eu o faria. Mas é preciso passar por eles repetidamente, avançando um pouco a cada vez.

...

E se você os processar em pedaços?

Leia dois pedaços, que seja 1Gb cada um. O primeiro trecho é processado e o próximo passo acrescenta a partir do segundo trecho "...avançando um pouco". Ao mesmo tempo, cortar o início do primeiro trecho (não é mais necessário porque é sempre "...avançando um pouco". Quando o segundo trecho terminar de ler o terceiro trecho - e agora adicionar do terceiro trecho "...avançando um pouco". Desta forma, sempre haverá dois pedaços de RAM (máximo 2GB) e haverá uma ordem de magnitude menor de acesso ao disco rígido.

 
GT788:

Atualização para a versão de 64 bits - até 16TB de RAM estará disponível.

Armazene o arquivo em formato binário para uma leitura mais rápida.

Processar o arquivo em pedaços de acordo com o tamanho da RAM.

Tente pré-processar dados para eliminar a duplicação de informações.

Para que eixo/versão é isto? Até o XPpro x64 suporta fisicamente até 128 e virtualmente até 16TB.

 
Silent:

Para que eixo/versão é isto? Até o XPpro x64 suporta fisicamente até 128 e virtualmente até 16TB.

É verdade, encontrei o máximo de 192 GB por 7.
 
komposter:

Há uma grande quantidade de informações (cerca de 20 GB em um arquivo de texto).

As informações consistem no mesmo tipo de seqüências, cerca de um milhão delas.

É necessário passar por todas as seqüênciasrepetidamente e fazer alguns cálculos.

A primeira coisa que vem à mente é ler todo o conteúdo do arquivo, preencher o conjunto de estruturas com ele e trabalhar com elas em memória.

Mas não funcionou, com o próximo redimensionamento da MT jura "Memory handler: não pode alocar 5610000 bytes de memória".

O despachante mostra que o terminal.exe usa 3,5 GB de RAM (de 16 físicas). Presumo que isto se deva ao fato de que o processo só pode obter 4GB.

A EA diz "Memória insuficiente(4007 Mb usado, 88 Mb disponível, 4095 Mb total)!!!"!

E isto é apenas 15,3% da quantidade necessária (e eu gostaria de aumentá-la também no futuro).

Eu não tenho mais imaginação.

Devo tentar recompor essas seqüências de tal forma, que eu obtenha muitas - muitas peças, mas cada uma delas contém apenas as informações necessárias no momento?

Tente também comprimir os dados (já converti para flutuadores com tipos de carvão em qualquer lugar que eu possa)? Mas me dará outros 10-20%, no máximo, e preciso reduzir o volume em uma ordem de grandeza...

Algum conselho, amigos? Eu não enferrujarei).

E na direção do uso do banco de dados não olharam? Configure o banco de dados, baixando-o de um arquivo de texto de dados. Você pode realizar qualquer agregação de dados com antecedência para cálculos futuros.

Consultas SQL do Expert Advisor.

O SGBD também pode ser colocado em um servidor separado para aumentar o desempenho da estação de comercialização.

 

Muito obrigado a todos por sua participação!

Estou off-line agora para o fim de semana, mas terei a certeza de responder a todos pela manhã e tentarei aproveitar os conselhos.

 
elugovoy:

Você já considerou o uso de um banco de dados? Configurar um banco de dados, carregar dados nele a partir de um arquivo de texto. É possível realizar algum tipo de agregação de dados de antemão para cálculos posteriores.

E depois consultas SQL do Expert Advisor...

O SGBD pode ser instalado em um servidor separado para aumentar o desempenho.

Pensei sobre isso. Estou interessado em opiniões:

komposter:

Outro pensamento é mover tudo para um banco de dados (MySQL?) e trabalhar com ele. A idéia é que as bases de dados estejam voltadas para tais volumes e constantes re-alistamentos.

Existe algum especialista? Quem tem uma opinião?

Qual será a aceleração em relação à leitura de um arquivo e qual será a desaceleração em relação ao trabalho na memória?

Razão: