1 Son düzenleyen, ugurlu2001 (11.06.2008 11:52:23)

Konu: Update SQL Süresi

Yorumlar için şimdiden teşekkür ediyorum.

Sorguyu ilk çalıştırdığımda yaklaşık olarak 10 - 15 sn kadar sürmüştü. Ancak şimdi aynı sorguyu çalıştırdığımda yaklaşık 10 dk. kadar bekliyorum. Bu ne kadar normal. Mantıklı bir açıklaması var mı?

Sorgu aşağıda.

Adetli.DBF kayıt sayısı : 108,933
ISLEMANA.DBF kayıt sayısı : 96,116

Sorgu:

Visual Fox Pro
UPDATE Islemana ;

        SET Islemana.ModelNo = Adetli.ModelNo ;
    From Islemana ;
        Inner Join Adetli On Islemana.StKod1 = Adetli.Kod ;
        WHERE Islemana.Iscinsi IN ('AG','AC','GI','CI','AA','AS','B1','B2')

Not: Kullanılan fieldlarda; Islemana.Iscinsi haricindeki tüm field lar Indexli

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

2

Re: Update SQL Süresi

Bence soru ile beraber aslinda cevabida sanki kendin yazmissin gibi
where de kullandigin alanin index li olmamasi

birde

Visual Fox Pro
WHERE Islemana.Iscinsi IN ('AG','AC','GI','CI','AA','AS','B1','B2')

kisminda kodu

Visual Fox Pro
WHERE inlist(Islemana.Iscinsi,'AG','AC','GI','CI','AA','AS','B1','B2')

olarak denesen

3

Re: Update SQL Süresi

Pek bir şey değişmedi Soykan abi.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

4 Son düzenleyen, ugurlu2001 (11.06.2008 12:23:05)

Re: Update SQL Süresi

Soykan abi, hatırlatma için teşekkürler. Basit bir Join çok daha hızlı sonuç verdi. 2,81 sn smile

Visual Fox Pro
LnStart = Seconds()

 
SELECT ;
        Isl.SubeNo, ;
        Isl.Tarih, ;
        Isl.Hesno, ;
        Isl.IsCinsi, ;
        Isl.StKod3, ;
        Isl.StKod1, ;
        Isl.Adet, ;
        Isl.Miktar, ;
        Isl.Milyem, ;
        Isl.Fiat, ;
        Isl.StKod2, ;
        Isl.Tutar, ;
        Isl.Altinal, ;
        Isl.UsdAl, ;
        Isl.EurAl, ;
        Adetli.ModelNo, ;
        Amodel.Fabrika ;
    FROM Islemana ISL ;
        INNER JOIN Adetli ON Isl.StKod1 = Adetli.Kod ;
        INNER JOIN Amodel ON Adetli.ModelNo = Amodel.Kod ;
    WHERE     IsCinsi IN('AG','AC','GI','CI','AA','AS','B1','B2') ;
    ORDER BY Isl.Hesno ASC, Isl.Tarih Desc ;
    Into Cursor crsTemp
 
? "Süre: ", Seconds() - LnStart
Browse
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

5

Re: Update SQL Süresi

3 tabloya cikardigin zaman eslemeyi daha kolay yapmis oldu

6

Re: Update SQL Süresi

Visual Fox Pro
UPDATE Islemana ;

    SET Islemana.ModelNo = Adetli.ModelNo ;
  From Adetli   ;
    WHERE Islemana.StKod1 = Adetli.Kod and ;
        Islemana.Iscinsi IN ('AG','AC','GI','CI','AA','AS','B1','B2')

olmayacak mi?

7 Son düzenleyen, ugurlu2001 (12.06.2008 11:25:50)

Re: Update SQL Süresi

Üstad, Süre yine değişmedi.

İslemana yı Update edene kadar, Join ile yeni bir cursor de birleştirdim. Son süre 1.50 sn ye civarında smile

Ama hala sorguyu ilk çalıştırdığımda sürenin kısa olup, daha sonraki çalıştırmalarımda uzun sürede sonuç vermesini anlayamadım?

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

8 Son düzenleyen, ugurlu2001 (13.06.2008 10:32:03)

Re: Update SQL Süresi

Sorunun kaynağı Çetin Üstad tarafından bulundu ve giderildi.

Kendisine teşekkürlerimi sunuyorum.

Sorunun ne olduğuna gelince; kullandığım bir kaç hazır class 'sın datasessionlardaki tablo bağlantıları. Sorguları farklı bir data sessionda çalıştırınca tüm sorgular eski performansına kavuştu. smile İşin tuhafı hala sebebini teknik olarak anlayamamış olmam. Sorgular aynı, tablolar aynı...  Çetin Hocam, sen el atmasan hayatta çözemezdim bu sorunu. Bu kadar bilgiyi nerden öğreniyorsun. Pınarın suyu nereden geliyor smile

Visual Fox Pro
oSession = CreateObject('MySession')

oSession.RunQuery()
 
DEFINE CLASS mySession as Session
datasession = 2
PROCEDURE Runquery
 
* ...... Sorgular / Alt Sorgular
* ....... Fonksiyonlar
 
ENDPROC
ENDDEFINE
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

9

Re: Update SQL Süresi

Karanlikta saclari farketmedin galiba:)

10 Son düzenleyen, ugurlu2001 (13.06.2008 15:06:45)

Re: Update SQL Süresi

Üstad, ben senden daha ufağım ama saçlarımda daha kötü durumda smile Senin yaşında senin yarın kadar olsam bahtiyar olurum inan smile

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü