Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MSSQL StoreProcedure Performans Sorunu (Çözüldü)
#1
Selamlar

İlk kez başıma gelen bir olay ve halen nedeni bulamadım yardımcı olabilecek arkadaşlara şimdiden teşekkürler

SP içerisindeki yapılanları normal bir Query olarak çalıştırdığımda 1 sn sürmeyen sorgu
Execute SP_XXXX ile çalıştırıldığında neden 17 sn civarı sürer 

Normal ve SP ile Execution Planları incelediğimde SP içerisindeki süreler ve kayıplar çok artıyor

Böyle bir şeyle karşılaşan oldumu acaba sorgular normal bir select sorgusu 
SP yi silip yeniden Create ettim değişen birşey olmadı
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#2
Selamlar
tablo indexlerinde bir bozulma mevcut mu? İlk etapta indexleri tekrar create etmenizde fayda var. Zaten şu mysql i anlamış değilim. Aynı program ve aynı veritabanı benim bilgisayarımda daha yavaşken, müşteri bilgisayarında çok daha sürtali çalışıyor. MSSQL e geçesim var Smile
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#3
@wiseman, @adelphiforumz zaten MSSQL deki SP çalışmasındaki problemden bahsetmiş sanırım siz MySQL den yana dertli olduğunuz için konu başlığındaki açıklamayı gözden kaçırdınız Smile

Denediğiniz queryi oduğu gibi SP nin içerisine alıp deneyince yine aynı sonucumu veriyor. SP nin giriş parametreleri varsa giriş parametrelerinin değerlerine göre içerideki sorgu ve kullanılan indexler veya tip dönüşüm işlemi yapılıyorsa gecikmenin sebebi bunlar olabilir.
Cevapla
#4
(13-09-2019, Saat: 16:23)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Selamlar

İlk kez başıma gelen bir olay ve halen nedeni bulamadım yardımcı olabilecek arkadaşlara şimdiden teşekkürler

SP içerisindeki yapılanları normal bir Query olarak çalıştırdığımda 1 sn sürmeyen sorgu
Execute SP_XXXX ile çalıştırıldığında neden 17 sn civarı sürer 

Normal ve SP ile Execution Planları incelediğimde SP içerisindeki süreler ve kayıplar çok artıyor

Böyle bir şeyle karşılaşan oldumu acaba sorgular normal bir select sorgusu 
SP yi silip yeniden Create ettim değişen birşey olmadı


Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Slow in the Application, Fast in SSMS?
Understanding Performance Mysteries

sayfasında anlatılan konuları inceleyebilirsiniz.
WWW
Cevapla
#5
merhabalar , aslında benim de çok sık kullandığım ve muzdarip olduğum konulardan biri çok ciddi bir performans farkı var , bazı denemeler yapıyorum bir sonuca ulaşabilirsem burdan paylaşırım , kolaylıklar diliyorum.
Cevapla
#6
(13-09-2019, Saat: 16:23)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Normal ve SP ile Execution Planları incelediğimde SP içerisindeki süreler ve kayıplar çok artıyor

Neden artıyor? Kullandığı indexler mi değişiyor?
WWW
Cevapla
#7
Burada öncelikle benim görüşüm
Kullanılan Query 'e bakamak lazım.
Herş query Sp de hızlı çalışacak diye bir şart yoktur zaten.
yazmış olduğunuz query 'e göre denemeler yapmanı gerekir.

Bazı yazdıklarınız normalde 2 dk geliyordur SP ye atarsın 1 dk ya düşer ama bazı queryler de SP de yükselir.
Ha buradaki durum tabiki SQL'in çalışma mantığına dayalıdır.

SP diye şartlamayın Kendinizi
TF olarak deneyin daha hızlı sonuçlar alacağınızdan eminin.
Cevapla
#8
Selamlar 
Sorularınızı ortak noktada genel olarak cevaplamak istiyorum
1. Store Procedure üzerinde parametre yok
2. Store Procedure silip farklı isimle kaydettim yine sonuç değişmedi
3. Exec SP_XYX yada Execute SP_SXZ şeklinde çalıştırınca yine sonuç aynı
4. Testlerde Where koşullarını kaldırdım
5. Order By kullanmadım
6. Veritabanını Shing ve All Index yapmam bir şeyi değiştirmedi
7. Veritabanını backup alıp başka makineye restore ettiğimde sonuç değişmedi (Makine kaynaklarına göre biri 2 sn. sürüyorsa diğeri 20 sn gibi)
 
SP içeriği
SP_XYZ(X int)
begin
 Select * from X_Tablo Where Id = X
end

Yavaş çalışan test yöntemi
Exec SP_XYZ(1)
Execute SP_XYZ(1)

Hızlı Çalışan Yöntem
New Query yapıp  SP içerisindeki kodu yapıştırıp çalıştırıyorum
Select * from X_Tablo Where = 1
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#9
test için
hızlı çalışan kod örneğinde query çalıştırmanız / .open yapmanız kıstas olmayabilir
open yaptıktan sonra son kayda gitme hızınız nedir.
belki SP içinde sql kodu çalışıp son kayda gidiyordur.
aradaki hız farkı bundan kaynaklanıyordur
Cevapla
#10
@meko bu testleri SQL serverın kendi üzerinde yapıyorum
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Mssql ve Linux serdar 0 87 25-09-2019, Saat: 14:05
Son Yorum: serdar
  [ ÇÖZÜLDÜ ]MSSQL VeriTabanına Tarih Kaydetme Hatası theSinan 7 343 04-09-2019, Saat: 10:57
Son Yorum: theSinan
  MSSQL de Tarih Saat kriteri Arama Bay_Y 5 689 20-08-2019, Saat: 11:59
Son Yorum: serdar
  [Çözüldü] Trigger çalışmaması hk. cinarbil 7 678 18-08-2019, Saat: 20:49
Son Yorum: serdar
  FireDAC içerisinde MSSQL görünmüyor adelphiforumz 3 420 09-03-2019, Saat: 18:51
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi