CONVERT_IMPLICIT

Reading Time: 2 minutes

Merhaba Sevgili Arkadaşlar ,

Bugün sizlere SQL SERVER da Execution Plan larımızı incelerken karşılaştığımız performans sorunlarımızından bahsedeceğim …

 

Çoğu zaman karşılaştığımız CONVERT_IMPLICIT  problemini nasıl ve ne şekilde aşarız bunu göreceğiz.

Şimdi adım adım örneğimiz üzerinden size aktaralım .

İlk önce bir adet test DB ‘si oluşturalım ..

Daha sonra bu DB ‘mizin içerisine Test Tablosu oluşturalım .

Test tablomuzuda oluşturduktan sonra içerisine bir kaç veri basalım ;

Veri basma işlemi bittikten sonra tablomuza Select çekelim …

Bu işlemden sonra aşağıda ki ekran görüntüsünde de gördüğünüz üzere tablomuz sağlıklı bir şekilde oluşturulmuş ve istediğimiz veriler içerisinde yer almaktadır.

11111111

 

Şimdi ise bir adet SP_ yazacağım. SP_ ‘min amacı telefon numarasını girdiğimde o telefon numarası kimlere ait onu bulan bir sp_ olacak.

Yukarıda oluşturduğumuz prosedürümüzü çalıştıralım .

Sonuç aşağıda ki gibidir ..

22222222

 

Şimdi ise Execution Planını inceleyelim SP_ ‘mizin …

3333333

 

Yukarıda da gördüğümüz gibi Plan ‘ımızda CONVERT_IMPLICIT ile karşılaşmaktayız . Bu durumda bu satırı incelediğimizde PHONE_NUMBER kolonumuz ile buraya gönderdiğimiz değişkenimiz arasında bir uyuşmazlık olduğunu görmekteyiz.

Hemen sp_ ‘mizi açıp inceleyelim ve problemi çözmeye çalışalım .

44444

 

Yukarıda ki ekran da da görüldüğü üzere PHONE_NUMBER kolonumuzun Data Type ‘ı CHAR (11) iken @PhoneNumber değişkenimizin Data Type ‘ı Nvarchar(50) olarak tanımlanmış.  Bu sorunu gidermek için değişkenimizin data type ‘ını kolonumuzunki ile aynı yapalım ve öyle deniyelim ;

 

55555

 

Execution Planımıza baktığımızda CONVERT_IMPLICIT uyarısı almamaktayız …

UYARI : CONVERT_IMPLICIT ‘lere dikkat etmeliyiz. Yüklü işlemlerimizde çok büyük performans problemi yaşatabilmektedir.

İyi Çalışmalar.

Leave a Reply

Your email address will not be published. Required fields are marked *