Mysql->firebird aktarma daki aşırı yavaşlık

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mysql->firebird aktarma daki aşırı yavaşlık

Mesaj gönderen White Rose »

s.a.
Arkadaşlar Firebird ver. 2.1.3, Mysql ver 5.1.53
Delphi 7 + UniDac componentleri kullanarak Mysql den Firebirde basit bir aktarma programı yaptım.
kod basit olarak şöyle

Kod: Tümünü seç

     ConMysql.Connected:=True;
     ConFbird.Connected:=True;
     TableMySql.Open;
     TableFBird.Open;
     Adt:=TableMysql.RecordCount;
     for Syc:=1 To Adt Do Begin
         TableMySql.RecNo:=Syc;
         TableFBird.Append;
         TableFBirdHESAPNUM.AsString  :=TableMySqlHESAPNUM.AsString;
         TableFBirdADI.AsString             :=TableMySqlADI.AsString;
         TableFBirdSOYADI.AsString       :=TableMySqlSOYADI.AsString;
          ..............
         TableFBird.Post;
         Application.ProcessMessages;
     end;
Mysql table'de 17 alan var kayıt adedi = 1.358.000
bu aktarma kodunu çalıştırdım.
24 saat sürdü , yanlış okumadınız 24 saat
acaba problem nerdedir, niçin bu kadar uzun sürdü, bu normal midir
düşüncelerinizi paylaşırsanız memnun olurum.
Teşekkürler
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Mysql->firebird aktarma daki aşırı yavaşlık

Mesaj gönderen Battosai »

Aslında yavaş bir işlem olmamış bu kadar çok kaydın döngü ile aktarılmasının uzun sürmesi normal. Hesapladım saniyede 15 kayıt aktarılmış fena değil. Bu işlem daha hızlı olması için daha performasnlı bir bilgisayara ihtiyacınız var. Yazılımsal olarak table yerine Query kullanmanız daha iyidir. Bu kadar kaydı table.open ile hafıza almak ayrıca bir yavaşlama sebebidir.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Mysql->firebird aktarma daki aşırı yavaşlık

Mesaj gönderen aslangeri »

s.a.
işlemleri table ile yaptığın için bu kadar yavaş sürdü.
birde table lardaki kayıtları ekranda gösteriyorsan hızlı bile yapmış denebilir.
mysql de limit fonksiyonu vardı sanırım onu kullanarak belirli sayıda kaydı select ederek gidebilirsin.
firebirde kayıt eklemek için ise sql kullanman performansı kat kat arttıracaktır.
bir diğer yöntem ise mysqlden okuduğun kayıtların insert sorgularını script olarak hazırlayıp bu scripti tek seferde içeri alabilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Mysql->firebird aktarma daki aşırı yavaşlık

Mesaj gönderen AhmetNuri »

Bence de insert le script hazırla ve gönder.
Ahmet DENİZ
Cevapla