Yorumları: 316
Konuları: 25
Kayıt Tarihi: 16-11-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 660
Acemi
Herkese merhaba.
Bir müşterim ürünlerine promosyon kodu yazdırıyor. Bu güne kadar 285 milyon kod yazdırmış. Bu kodlar 10 karakter ve 285 ayrı excell dosyasında. Her dosyada 1 milyon kod var.
İstenen şey şu; İstenen kod yada kodları bu 285 milyon kod içinden bulmak. Hangi dosyada ve kaçıncı satırda olduğunu bulmak istiyorlar. Bu kodları MySQL veri tabanına kayıt etmeye kalktım ama 1 milyon kod 10 dk. sürüyor. Bunun yerine bu kodları excel dosyasından aratmak için komut yada yöntem var mıdır ?
Yorumları: 1.063
Konuları: 35
Kayıt Tarihi: 22-07-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 13
- Delphi 12
- Delphi 11
- Delphi 10 Serisi
Rep Puanı: 5.465
Üstad
Excel üzerinde doğrudan çalışmayı önermem.
Mutlak bir index yapısı olmalı.
Milyonlarca kayıt arasında en hızlı bu şekilde dönebilirsiniz.
Begin : = end / 2;
Yorumları: 316
Konuları: 25
Kayıt Tarihi: 16-11-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 660
Acemi
Şimdiye kadar 32 milyon kod (kayıt) yükledim. UniDAC komponentleri ile veri tabanına bağlanıyorum. 20 milyon kayıt varken UniTable1.Active := True yapınca bağlanması 10 dk. sürüyordu. Şuh anda 32 milyon olunca "Out of Memory" vermeye başladı. (Bilgisayarım 10. Nesil i7, 8 Gb RAM, 512 Gb SSD)
Yorumları: 41
Konuları: 4
Kayıt Tarihi: 21-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 27
Başlangıç
Kodları Tablolara bölebilirsin. Mesala 32 tablo yap. Herbirinde 1 milyon kayıt olur. Arama için tablo ismi ile veriler arasında bir ilişki kurarsın böylelikle veri aramak istediğinde hangi tablodan alacağını bilirsin.
Yorumları: 61
Konuları: 4
Kayıt Tarihi: 23-04-2020
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 257
Acemi
11-01-2023, Saat: 20:26
(Son Düzenleme: 11-01-2023, Saat: 20:27, Düzenleyen: ugorkem.)
Aşağıdaki adımları izlerseniz sorun yaşamazsınız.
- Excel dosyalarını DB ye aktarın (kodlar random değil de düzenli bir mantık içinde üretiliyorsa mysql de bu kodları oluşturan bir function yazabilirsiniz)
- Arama yapacağınız alan için index oluşturun
- UniQuery kullanın (uniTable tüm kayıtları aynı anda hafızaya almaya çalışır. )
bunları yaparsanız hata almadan çok kısa sürede sonuç alırsınız
Yorumları: 316
Konuları: 25
Kayıt Tarihi: 16-11-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 660
Acemi
Çok yüksek kayıt sayısında veri tabanları ile çalışmadım. Hep Table üzerinden işimi gördüm. Söylediğiniz gibi yapınca sorun çözüldü. Hepinize çok teşekkür ederim.