yardıma ihtiyacım var! Görev çözülmedi, demirin sınırlamalarıyla karşılaşıyorum - sayfa 3

 

Çaydanlığı bağışlayın, x64'te herhangi bir kısıtlama var mı? İşte karşınıza çıkan ilk makale (ilk değil, tamam) x64 sistemi altında SQL SERVER 2008 için RAM Sınırlaması - kaç tane operatör var, veritabanı o kadar çok yiyor ki.

Belki de denemeliyiz.

ps kullanışlı olabilir 32-bit Windows 8 / 8.1'de 4 GB bellek sınırını kaldırın

 
komposter :

Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).

Peki neden metinde? Verileri ikili biçimde sollamaya başlamak daha kolay değil mi? İşte bakıyorsunuz ve boyut uygun olacak:

Bilgi miktarı da üzücü... Orada Gig 10 olurdu, onu bir RAM diske (aslında belleğe) aktarırdım ve istediğim kadar okurdum.

 
meat :

Peki neden metinde? Verileri ikili biçimde sollamaya başlamak daha kolay değil mi? İşte bakıyorsunuz ve boyut uygun olacak:

Yani görünüşe göre 20GB sınırdan uzak.
 

64 bit sürüme geçin - 16 TB'a kadar RAM mevcut olacaktır.

Dosyayı daha hızlı okunabilmesi için ikili biçimde saklayın.

Dosyayı RAM'in boyutuna göre parçalar halinde işleyin.

Yinelenen bilgileri ortadan kaldırmak için verileri önceden işlemeye çalışın.

 
komposter :

Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).

...

Ve eğer bu dizilerden bir kez geçmek gerekirse, bunu yapardım. Ancak, her seferinde biraz ileri giderek, onları tekrar tekrar gözden geçirmeniz gerekir.

...

Ve parçalar halinde işlenirse?

İki parça sayın, her biri 1GB diyelim. İlk parça işlenir ve bir sonraki geçişte ikinci parçadan "...biraz ileriye doğru hareket ederek" eklenir. Aynı zamanda, ilk parçanın başlangıcını kesin (sonuçta, artık gerekli değildir, çünkü her zaman "... biraz ileri doğru hareket edin." İkinci parça bittiğinde, üçüncü parçayı sayın - ve şimdi üçüncü parçadan ekleyin "... biraz ileriye doğru." Böylece, RAM'de her zaman iki parça olacak (maksimum 2 GB) ve sabit diske çok daha az erişim olacak.

 
GT788 :

64 bit sürüme geçin - 16 TB'a kadar RAM mevcut olacaktır.

Dosyayı daha hızlı okunabilmesi için ikili biçimde saklayın.

Dosyayı RAM'in boyutuna göre parçalar halinde işleyin.

Yinelenen bilgileri ortadan kaldırmak için verileri önceden işlemeye çalışın.

Bu hangi aks/versiyon için? XPro x64 bile 128 TB'a kadar fiziksel ve 16 TB'a kadar sanal destekler.

 
Silent :

Bu hangi aks/versiyon için? XPro x64 bile 128 TB'a kadar fiziksel ve 16 TB'a kadar sanal destekler.

Doğru, 7 için maksimum 192 GB buldum.
 
komposter :

Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).

Bilgi aynı türden dizilerden oluşur, bunlardan yaklaşık bir milyon vardır.

Tüm dizileri tekrar tekrar sıralamak ve bazı hesaplamalar yapmak gerekir.

Akla gelen ilk şey, dosyanın tüm içeriğini okumak, bir dizi yapıyla doldurmak ve onlarla bellekte çalışmaktır.

Ama orada değildi, bir sonraki yeniden boyutlandırmada, MT "Bellek işleyici: 5610000 bayt bellek ayıramıyor" diye yemin ediyor.

Aynı zamanda, gönderici terminal.exe'nin 3,5 GB RAM kullandığını söylüyor (16 fizikselden). Bunun, işlemin yalnızca 4GB alabilmesinden kaynaklandığını anlıyorum.

EA, "Yeterli bellek yok ( 4007 Mb kullanıldı, 88 Mb kullanılabilir, toplam 4095 Mb)!!!" diyor.

Ve bu, gerekli hacmin sadece %15,3'ü (ve gelecekte bunu artırmak istiyorum).

Ve artık yeterince hayal gücüm yok.

Bu dizileri, çok, çok parça elde edilecek şekilde yeniden oluşturmaya çalışın, ancak her biri yalnızca şu anda gerekli olan bilgileri mi içeriyor?

Hala verileri sıkıştırmak için (I ve benzeri, mümkün olan her yerde char ile yüzer)? Ancak bu, maksimum %10-20 daha verecek ve hacmi bir büyüklük sırasına göre azaltmam gerekiyor ..

Ne düşündüğünüzü söyleyin arkadaşlar. Benden sonra paslanmayacak)

Ve bir DB kullanımına doğru bakmadı mı? Veritabanını koyuyoruz, oraya bir metin dosyasından veri yüklüyoruz. Sonraki hesaplamalar için önceden herhangi bir veri toplama işlemi gerçekleştirebilirsiniz.

Ve sonra uzmandan SQL sorguları...

DBMS, ticaret istasyonunun performansını artırmak için ayrı bir sunucuya da kurulabilir.

 

Herkese katıldığınız için çok teşekkürler!

Şimdi hafta sonu için çevrimdışı koşuyorum, ancak Pazartesi günü kesinlikle herkese cevap vereceğim ve tavsiyeyi kullanmaya çalışacağım.

 
elugovoy :

Ve bir DB kullanımına doğru bakmadı mı? Veritabanını koyuyoruz, oraya bir metin dosyasından veri yüklüyoruz. Sonraki hesaplamalar için önceden herhangi bir veri toplama işlemi gerçekleştirebilirsiniz.

Ve sonra uzmandan SQL sorguları...

DBMS, ticaret istasyonunun performansını artırmak için ayrı bir sunucuya da kurulabilir.

Bunun hakkında düşündüm. Görüşlerle ilgileniyor:

kompost :

Başka bir düşünce de her şeyi bir DB'ye (MySQL?) aktarmak ve onunla çalışmaktır. Teorik olarak, veritabanları bu tür hacimler ve sürekli kürekleme için uyarlanmıştır.

Uzmanlar var mı? Kim ne diyecek?

Bir dosyayı okumaya kıyasla hızlanma ne olacak ve bellekte çalışmaya kıyasla yavaşlama ne olacak?