Forum

Sql 2014 prosed...
 
Bildirimler
Hepsini Temizle

Sql 2014 prosedür işlemci sorunu

2 Yazılar
1 Üyeler
0 Reactions
547 Görüntüleme
(@Cihan_Aksoy)
Gönderiler: 13
Eminent Member
Konu başlatıcı
 

Merhaba, 8-9 IF koşullu bir prosedürüm var. Ancak aktif ettiğim zaman çok aşırı derecede CPU kullanımı oluyor ve haliylen sistem yavaşlıyor. 

 Prosedürüm şu şekilde;

  DECLARE @ID int = (SELECT ID FROM ItemList WHERE Serial = @Serial)

IF(@ReferenceID = 24679 OR @ReferenceID = 24683 OR @ReferenceID = 24687 OR @ReferenceID = 24691)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56000 , 1  , 0  , 56000 , 0),

(@ID , 1 , 1 , 56003 , 1  , 0  , 56003 , 0)

END

ELSE IF(@ReferenceID = 24680 OR @ReferenceID = 24684 OR @ReferenceID = 24692 OR @ReferenceID = 24688)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56001 , 1  , 0  , 56001 , 0),

(@ID , 1 , 1 , 56004 , 1  , 0  , 56004 , 0),

(@ID , 1 , 2 , 56005 , 1  , 0  , 56005 , 0)

END

ELSE IF(@ReferenceID = 38849 OR @ReferenceID = 38852 OR @ReferenceID = 38861 OR @ReferenceID = 38864)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56006 , 1  , 0  , 56006 , 0),

(@ID , 1 , 1 , 56009 , 1  , 0  , 56019 , 0)

END

ELSE IF(@ReferenceID = 38850 OR @ReferenceID = 38853 OR @ReferenceID = 38862 OR @ReferenceID = 38865)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56007 , 1  , 0  , 56007 , 0),

(@ID , 1 , 1 , 56010 , 1  , 0  , 56010 , 0)

END

ELSE IF(@ReferenceID = 38851 OR @ReferenceID = 38854 OR @ReferenceID = 38863 OR @ReferenceID = 38866)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56008 , 1  , 0  , 56008 , 0),

(@ID , 1 , 1 , 56010 , 1  , 0  , 56010 , 0),

(@ID , 1 , 2 , 56011 , 1  , 0  , 56011 , 0)

END

ELSE IF(@ReferenceID = 38843 OR @ReferenceID = 38846 OR @ReferenceID = 38855 OR @ReferenceID = 38858)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56012 , 1  , 0  , 56012 , 0),

(@ID , 1 , 1 , 56015 , 1  , 0  , 56015 , 0)

END

ELSE IF(@ReferenceID = 38844 OR @ReferenceID = 38847 OR @ReferenceID = 38856 OR @ReferenceID = 38859)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56013 , 1  , 0  , 56013 , 0),

(@ID , 1 , 1 , 56016 , 1  , 0  , 56016 , 0)

END

ELSE IF(@ReferenceID = 38845 OR @ReferenceID = 38848 OR @ReferenceID = 38857 OR @ReferenceID = 38860)

BEGIN

INSERT INTO OptionList VALUES 

(@ID , 1 , 0 , 56014 , 1  , 0  , 56014 , 0),

(@ID , 1 , 1 , 56016 , 1  , 0  , 56016 , 0),

(@ID , 1 , 2 , 56017 , 1  , 0  , 56017 , 0)

END

 Daha optimize bir halde ve CPU'yu kasmayacak şekilde nasıl kullanabilirim ?

 
Gönderildi : 14/12/2014 16:52

(@Cihan_Aksoy)
Gönderiler: 13
Eminent Member
Konu başlatıcı
 

Merhaba. Öncelikle cevabınız için çok teşekkür ederim. OptionList tablosunun yapısı şu şekildedir; 

Design: http://prntscr.com/5gy0cu

Index: http://prntscr.com/5gy0m0

 

 
Gönderildi : 15/12/2014 06:12

Paylaş: