Yorumları: 262
Konuları: 19
Kayıt Tarihi: 16-11-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 491
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ı: 721
Konuları: 16
Kayıt Tarihi: 22-07-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 12
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
Rep Puanı: 3.807
Uzman
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ı: 262
Konuları: 19
Kayıt Tarihi: 16-11-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 491
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ı: 30
Konuları: 2
Kayıt Tarihi: 21-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 23
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ı: 53
Konuları: 3
Kayıt Tarihi: 23-04-2020
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 221
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ı: 262
Konuları: 19
Kayıt Tarihi: 16-11-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 491
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.