Procedure neden yavas calisir

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Procedure neden yavas calisir

Mesaj gönderen adelphiforumz »

S.A.

bir store procedure var bu store procedure exec ile çalıştırıldığında 8-10 sn sürüyor
fakat store procedure içerisindeki select cümlesini direkt çalıştırdığımda 0-1 sn civarında bitiyor
bu neden kaynaklanabilir bilen varmı

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Procedure neden yavas calisir

Mesaj gönderen adelphiforumz »

Aşağıdaki şekilde kodu biraz değiştirip denediğimde hız oldukça fark etti fakat
iki işlem arasında nasıl bir fark varda bu kadar hız farkediyor bunu bilen varsa paylaşabilirmi acaba

Yavaş çalışan kod: Yaklaşık 10 sn sürüyor

Kod: Tümünü seç

create procedure GetOrderForCustomers(@CustID varchar(20))
as
begin
  select * from orders
  where customerid = @CustID
end
Hızlı çalışan kod : yaklaşık 1 sn sürüyor

Kod: Tümünü seç

create procedure GetOrderForCustomersWithoutPS(@CustID varchar(20))
as
begin
  declare @LocCustID varchar(20)
  set @LocCustID = @CustID

  select * from orders
  where customerid = @LocCustID
end
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Procedure neden yavas calisir

Mesaj gönderen omurolmez »

Bana hiç mümkün gelmedi. Gözünüzden kaçırdığınız bir şey olmalı ! Örneğin, uzun süren çoğu işlem ikinci çalıştırmada kısa sürer (cache)...
Ömür Ölmez
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Procedure neden yavas calisir

Mesaj gönderen sabanakman »

omurolmez yazdı:Bana hiç mümkün gelmedi. Gözünüzden kaçırdığınız bir şey olmalı ! Örneğin, uzun süren çoğu işlem ikinci çalıştırmada kısa sürer (cache)...
SQL Server hizmetini durdur başlat yaptıktan sonra ilk sorgu yine yavaş geliyorsa durum tam olarak bundan kaynaklanmaktadır. Ek olarak, orders tablosunda customerid alanı için indeks tanımlamanız performansı arttıracaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Procedure neden yavas calisir

Mesaj gönderen adelphiforumz »

Test için yeni bir sql kurdum 2012 EXP.
yeni bir tablo uluşturdum içine 200.000 data ekledim
tablo ID, int
X1, X2, X3,...X10 Hepsi Varchar(50)

sorguyu parametreden alıp where şartına soktuğumdaki süre ile parametreden gelen değeri declare edilmiş bir alana taşır ve bunu where şartına soktuğumdaki süre farkı yaklaşık 7-8 katına çıkıyor
şaşırtıcı fakat her defasında böyle sonuç alıyorum ve bunun cache ile ilgili olmayacağını düşünüyorum fakat yinede kesin birşey diyemedim
fikri olan varsa yine test ederim.

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Procedure neden yavas calisir

Mesaj gönderen omurolmez »

Hız ölçümü birden fazla tekrarla yapılır. İkinci (veya sonraki) ölçümlerin en hızlısını veya ortalamasını alabilirsiniz. İkişer tekrar ile ölçeceğim derseniz; sp nin iki farklı hali için toplam dört tane ölçüm yapmanız gerekir. Buna rağmen sonuçlar aynı ise, yazılımın o sürümüne ait bir "bug" bulmuş olabilirsiniz. Veya sunucu, sp deki değişiklik nedeniyle başka bir optomizasyonu devreye sokuyor olmalı.

Şaban Hocamızın indeks önerisini de unutmayın !
Ömür Ölmez
Cevapla