SQL Server 2017 IDENTITY_CACHE Yeniliği

Reading Time: 3 minutes

SQL Server 2017 ile hayatımıza giren güzel bir özellikten bahsedeceğiz bugün. IDENTITY_CACHE özelliği ;

Bu özelliği 2016 versiyonunda hayatımıza giren sys.database_scoped_configurations tablosunda görebiliriz.

Bu özellik default olarak aktif gelmektedir.

Şimdi bir kaç örnek ile daha detaylı inceleyelim bu özelliği ,

İlk adım olarak bir demo tablo oluşturup o tabloya data basıyoruz.

Bu işlemi aşağıda hazırlamış olduğum query bloğu ile gerçekleştirebilirisiniz.

En son aşamada tablomuza SELECT çekerek datamızı kontrol ettikten sonra başka bir session açıyoruz ve oerada aşağıda ki gibi transaction başlatıp INSERT işlemi yapmayı deniyoruz.

Başka bir Session da da aktif sessionlar neler onlara bakarak teyid ediyoruz işlemimizi.

Gördüğünüz üzere 51 no lu session commit beklemekte.

Aktif session ımız devam ederken SQL Server Engine Servisini durdurmamız gerekmekte. Bunun bir kaç yöntemi var. İster Services üzerinden,ister SQL Server Configuration Manager üzerinden ister isede SSMS üzerinde query yazarak durdurma yapabiliriz.

Biz SSMS üzerinden durdurma yöntemini seçip daha sonra Servisi ayağa kaldırırkende SQL Server Configuration Manager aracını kulllanacağız.

Şimdi aşağıda ki komut ile servisimizi durduralım.

Göründüğü üzere servisimiz durmuş durumda. SQL Server Configuration Manager üzerinden bakalım servisimizin durumuna,

Şimdi ise aynı ekrandan Engine Servisinin üzerine gelip sağ tıklayıp START diyerek servisi ayağa kaldıralım.

Servisimiz ayağa kalktıktan sonra tablomuza tekrar SELECT atalım.

 

Gördüğünüz üzere Transaction içerisinde attığımız INSERT ler servis durması ile Rollback olduğunu tablomuzda ki kayıt sayımız ile teyid ediyoruz.

Şimdi ise transaction içerisinde yolladığımız Insert leri normal şekilde yapalım ve sonra tablomuzu tekrar  kontrol edelim.

Tablomuza SELECT çekelim ,

Gördüğünüz üzere IDENTITY değerimiz 1001 den sonra ya geçmiş durumda. IDENTITY_CACHE den dolayı bu şekilde bir değer ile arttırıma devam etti tablomuz. Bu süreçten kurtulmak için. SQL Server 2017 ile aktif halde gelen IDENTITY Cache özelliğini pasif etmeniz gerekmektedir.

 

Bunun içinde aşağıda ki script ile pasif hale getiriyoruz ,

Daha sonra teyid ediyoruz 2016 ile hayatımıza giren tablo içerisinde,

 

Bu şekilde Identity değerlerimiz bizim kontrolümüzde arttırımlar yapacaktır. Bu özelliği GUI ile SET edemezsiniz bu yüzde. t-sql kullanmanız gerekmektedir.

Örneğimizi isteyenler bu özelliği OFF yaptıktan sonra deneyip IDENTITY değerlerinin kaldığı yerden devam ettiğini görebilirler.

Kolay Gelsin.

 

2 Replies to “SQL Server 2017 IDENTITY_CACHE Yeniliği”

    1. Selam Salih,

      Evet bu özelliği kapatmanız gerekmekte , Aslında sisteminizin yapısına ve ihtiyacına göre davranış göstermeniz gerekmekte ama bu özelliği kullanacak yapılarınız olması zor gibi.

      Default ta kapatıp sonra ihtiyacınız durumunda aktif etmeniz en sağlıklısı.

      Kolay Gelsin.

Leave a Reply

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