Firebird 2.0 neden 1.5 den 14 kat daha yavas

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Henüz v2.0 da bir tecrübem olmadığından aklıma başka bir şey gelmiyor. Zaten kararlı hali de toparlanmak üzere.. ayrıca bu tür açıklanamayan hataları geri bildirim/feed back olarak iletmek yararlı olur :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

cache den aşırı bir okuma yapılıyor. Cache de arama algoritmasında bir sıkıntı olabilir ama düşüncem o ki bu şekilde bir query her hal ve şartta left join kullanılarak hazırlanan query den yavaş çalışır. Query yi bir left join kullanarak dener misiniz ? Muhtemelen bu sorunu yaşamayacaksınız.
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

SUB Select yapıları 2.0'da oldukça geliştirildi. @doganzorlu'nun belirttiği gibi SUB Select kullanmadan LEFT JOIN'le test etmende fayda var:

Kod: Tümünü seç

for
select
  s.kodu,
  s.adi,
  sum(sh.giren_miktar),
  sum(sh.cikan_miktar)
from kart s
  LEFT JOIN detay sh ON sh.kodu = s.kodu and sh.islem_tarihi between '01.01.2000' and '30.10.2009'
group by s.kodu, s.adi
into :kodu,:adi,:giren, :cikan
do
 suspend;
İyi çalışmalar.
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

@doganzorlu hocam left joinle yaptıgım zaman bu sure kat kat daha artıyor ve 46 saniye oluyor. önceden sp oyle idi bu yönteme cevirince 1 s civarına dusunce cok sasırmıstım vede sevinmistim. Sanırım sizinde dediğiniz gibi cachle igili bir sıkıntı var. cunku fb 2.0 Fetches from cache = 4.810.770 oysa fb 1.5.3 Fetches from cache = 338.025 gorunuyor.

ama cozemedim.

@Hakan Can dedigin gibi 2.0 da left join geliştirildi katılıyorum denedim. left join 1.5.3 46 snde gelirken su an bu hız 6 sn ye kadar gelitirilmiş. bu left join icin iyi bir hız ama benim sp 1 sn (select icinde select yani) gelirken bu left join le 6 sn kadar bir zaman da geliyor buda yine 6 katlık bir yavaslık demek.

ilginiz icin tsk ederim.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

SUB Select ile Left Join farklı şeyler. SUB Select geliştirildi derken daha detaylı kullanım imkanları sunuluyor 2.0'da. Sonuçta SP'nde SUB Select kullanıyorsun.

Tarih şartını kaldırıp test edebilir misin? Bir de mümkünse SP'nin SUB Select'li ve Left Join'li test ettiğin tam kodlarını gösterebilir misin?

İyi çalışmalar.
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

s.a
Final sürümünü de yükledim denedim degişen bir sey yok. Acaba bunu siz ingilizcesi olan abiler bir firebirde bildirsemi.

Sanırım sorun fetch de

Birde bu şifre olayını nasıl çözmüşler bir turlü bulamadım.

Halen daha masterkey gecerli bir sifre
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

IB 5x te karşılaşmıştım Tarih alanlarında index te olsa yavaştı, denemek için tarihleri integer bi field a aktarım onun üzerinden işlemleri yaptırınca performans çok artmıştı. İmkanın varsa bunu deneyebilir misin ?

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar Musti,

Şu Database'i bana bi yollar mısın, ve işletmeye çalıştığın SP yada Query'i de beraber bana yollarsan, ben bir incelemek istiyorum.

Eğer bir sorun varsa bunu bildiririz. Sanmıyorum bir yerlerde bir şey değişmiş yada doğru kullanılmıyor olabilir.

Fikirlerimi daha sonra söylerim. (Ben de bir kere buna benzer bir şey yapmıştım, yavaş olduğunu sandım ama Query'i olması gerektiği gibi yazmamışım bu sebepleymiş. Query'i (Terminatör) düzenleyince hızlanmıştı)

Algoritmayı bilmek ve isteneni buna göre hazırlamak, işi çok hızlandırıp değiştiriyor.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

merhaba abi,

yaklasık 400 mb bir dosya nasıl nerye gondercem bilmiyorum.

Ama cok basit bir şekilde oluşturdum.

Kod: Tümünü seç

CREATE PROCEDURE NEW_PRO2 
returns (
    h integer)
as
declare variable i integer;
declare variable stk varchar(20);
begin
 i=1;

WHILE (i<686000) DO begin

                 i=i+1;
stk=i;
INSERT INTO kart (KODU, STOK_ADI)
VALUES (:STK,:stk || '.NOLU kart');
end

  H=i;
  suspend;
end
aynı işlemi bir detay icin yaptım giren ve cikan yazdırdım. o kadar
Bütün bu sorgula işlemini IBEXPert de yapıyorum o yüzden her hangi bir Query kullanmıyorum.

Sp de aynen şöyle sp adı NEW_PROCEDURE

Kod: Tümünü seç

for 
select s.kodu,s.adi,(select sum(giren_miktar) from detay sh where sh.kodu =s.kodu   and islem_tarihi between '01.01.2000' and '30.10.2009'),(select sum(cikan_miktar) from detay sh where sh.kodu =s.kodu and islem_tarihi between '01.01.2000' and '30.10.2009')  from kart s 
group by  s.kodu,s.adi 
into :kodu,:adi,:giren, :cikan 
do 
 suspend; 

Çalıştırma şeklimde

Kod: Tümünü seç

select * from NEW_PROCEDURE
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Re: Firebird 2.0 neden 1.5 den 14 kat daha yavas

Mesaj gönderen armadillo »

musti yazdı:s.a
Current memory = 1.841.480
Max memory = 2.555.840

Current memory = 779.248
Max memory = 781.972
Memory miktarları ile alakalıdır diye düşünüyorum ama :roll:
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

her iki raporda aynı pc de alınıyor.
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

musti yazdı:her iki raporda aynı pc de alınıyor.
Cahilliğimi bağışla ama SQL server da kullanılacak hafıza ayarları değiştirelebiliyor. Ordan mantıkla vardım bu sonuca firebirdde benzer bir ayarlama varmı bilmiyorum
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

merhaba,
estagfirullah.

Evet firebird de de böyle bir bellek yatarlaması var. Ama bu sorunu çözemyecek gibi. bunu firebirde yazmak lazım da bakalım ne olacak
ama enteresan olan bende baska kimsenin bunu yaşamaması. biraz da ha bekleyelim bakalım.Bir ustad yaşarda firebirde yazarsa sorunu anlarız.

iyi çalışmalar
Cevapla