Stored Procedure de zaman sorunu

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
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Stored Procedure de zaman sorunu

Mesaj gönderen unalaygun »

Veritabanı olarak SQL Server 2005 kullanıyoruz.
Öncelikle merhaba herkese kolay gelsin.

Benim Bir stored procedure'um var ve 15 16 dakikayı buluyor gelmesi Exec parametresiyle çalıştırıyorum değerlerini göndererek.
15 16 dakikadan aşağı gelmiyor.

Sonra içindeki sorguları birebir alarak değerleri elle set edip çalıştırdığımda ise 30 sn kadar bir sürede geliyor.
Kodlarım parça parça sql kodlarından oluşuyor.
Ve bir table yazıyor.

Yardımlarınızı bekliyorum tşkler. Kolay gelsin.
derviş
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Sakıncası yoksa SP nin içeriğini gönderirseniz belki daha isabetli tavsiyeler verilebilir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
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,

Soruları daha açıklayıcı sorarsanız yanıt almanız çabuklaşır. Yazdığınız soru pek açıklayıcı değil, Recep'e katılıyorum.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Sp içerik

Mesaj gönderen unalaygun »

ALTER proc [dbo].[krg_Rapor](@Ay int,@Yil int,@Int int,@SubeObjId bigint,@BolgeObjId bigint,@mesai int)as
begin
declare @oncekiFaturalasmamis decimal
set @oncekiFaturalasmamis=0
declare @EskidenDevirAlacak decimal
set @EskidenDevirAlacak=0
declare @HedefCiro decimal
set @HedefCiro=0
declare @BugunkuFaturaToplam decimal
set @BugunkuFaturaToplam=0
declare @BugunkuFaturaToplamAnlasmali decimal
set @BugunkuFaturaToplamAnlasmali=0
declare @BugunkuFaturaToplamAnlasmasiz decimal
set @BugunkuFaturaToplamAnlasmasiz=0
declare @BugunkuCiroToplami decimal
set @BugunkuCiroToplami=0
declare @bugunkudagitilanciro decimal
set @bugunkudagitilanciro=0
declare @bugunkudagitilmasigerekenciro decimal
set @bugunkudagitilmasigerekenciro=0
declare @bugunkudagitilmamisciro decimal
set @bugunkudagitilmamisciro=0
declare @DagitilanOran decimal
set @DagitilanOran=0

declare @toplamTahsilat decimal
set @toplamTahsilat=0
declare @ToplamAcikAlacak decimal
set @ToplamAcikAlacak=0
declare @Kalan decimal
set @Kalan=0
declare @BugunkuTahsilat decimal
set @BugunkuTahsilat=0
declare @YapmasiGerekenTahsilat decimal
set @YapmasiGerekenTahsilat=0
declare @Tarih datetime
declare @bastarih datetime
declare @i int
set @i=0
set @bastarih=cast ('01.'+cast(@Ay as varchar(4))+'.'+cast(@Yil as varchar(4)) as datetime)
derviş
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Arkadaş, tam sarı çizmeli Mehmet Ağa olmuş. :lol:

Galiba yarım kaldı procedure.

JOIN vs. hatası yoksa bir SP'nin 15-16 dakika sürebilmesi için VT'nin terrabyte'lar seviyesinde olması gerekiyor (tabi çok özel istisnalar olabilir).

SP'nin tamamını (Code tagları içinde) gönderebilirsen belki yardımcı olabiliriz. Bir de mümkünse SP'nin kullandığı tabloların kabaca kayıt sayılarını hatta yapılarını (CREATE TABLE..., INDEXler vs.) gönderirsen...

İyi çalışmalar.
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

abilerim ablalarım öncelikle herkesten üzür diliyorum.
Procedure'ü defalarca atmak istemem rağmen atamadım ve inanının çok sık boğaz durumda olmam nedeniyle dönüp bakamadım bile (Öz eleştiri ihmal karlık ta yok değil tabi.. ) affınıza sığınıyorum.


sorunu halletmiş olmakla birlikte açıkcası hala problemin kaynağını halletmiş değiliz.
procedure'den iki adet select cümlececiğini çıkardım sorun çözüldü o kadarki 15, 16 saat süren sorgu 1 saat 45 dakikaya kadar düştü ama
çıkarmış olduğum o iki cümlecik select cümleciği şeklinde gayet iyi çalışıyor hatta planına baktığımızda yapmadı gereken index türlerinide yapıyor.

logical reads lerde düzgün geliyor ama içinden çıkarınca düzeldi.
açıkcası şansa çıkarmıştım tevafuk oldu diyelim..
tekrar teşekürler.
derviş
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

procedure'den iki adet select cümlececiğini çıkardım sorun çözüldü o kadarki 15, 16 saat süren sorgu 1 saat 45 dakikaya kadar düştü ama
sanırım burdaki saatler dakika olacak..

yoksa 15, 16 saat süren sorgu SQL'in doğasına aykırı :lol: :lol: :lol:
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

hayır saat ama veritabanı oldukça sağlam çok baba tablolarımız var şuan 150 Gigalık bilgi mevcut ve bu kırpılmış halidir.
ve yaklaşık 1000 adet kullanıcı var terminal serverdan bağlanıyorlar
connection sayısı 1200 buluyor bazen

yapı çok büyük..

ve 24 saat çalışan bir yapı yani off olduğu zaman yok..
derviş
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Arama/where içindeki alanlar indekslendikten sonra, SP nin kodlarını görmeden kesin bir şey söyleyemesek de 150 GB olması fazla bir fark yapmaması gerekir. Veritabanı tasarımı ve indeks yapılarında problem olabilir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla