CONVERT_IMPLICIT
Ç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 ..
CREATE DATABASE [SQL_TÜRKİYE]
Daha sonra bu DB 'mizin içerisine Test Tablosu oluşturalım .
USE [SQL_TÜRKİYE]
CREATE TABLE [SQL_TÜRKİYE_TEST] ( Id INT IDENTITY (1,1), NAME VARCHAR (70), SURNAME VARCHAR(150) , PHONE_NUMBER CHAR (11) )
Test tablomuzuda oluşturduktan sonra içerisine bir kaç veri basalım ;
INSERT INTO [SQL_TÜRKİYE_TEST] VALUES ('Yusuf','KAHVECİ','05300000000')
,('Yaşar','KAHVECİ','05310000000')
Veri basma işlemi bittikten sonra tablomuza Select çekelim ...
USE [SQL_TÜRKİYE]
SELECT * FROM [SQL_TÜRKİYE_TEST]
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şturujlmuş ve istediğimiz veriler içerisinde yer almaktadır.

Ş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.
CREATE PROCEDURE [dbo].[Rehber]
(
@PhoneNumber NVARCHAR(50)
)
AS
SELECT Name,SurName FROM SQL_TÜRKİYE_TEST WHERE PHONE_NUMBER=@PhoneNumber
Yukarıda oluşturduğumuz prosedürümüzü çalıştıralım .
EXEC Rehber '05300000000'
Sonuç aşağıda ki gibidir ..

Şimdi ise Execution Planını inceleyelim SP_ 'mizin ...

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 .

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 ;

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.