Sequence Nedir? Nasıl kullanılır?

Sequence Nedir? Nasıl kullanılır? Sequence belirli bir sayıdan başlayarak belirtilen sayı kadar arttırmaya yarayan ve cache mekanizması ile belirtilen sayı kadar cache tutmaya yarayan veritabanı özelliklerinden bir tanesidir.

Aşağıda ekran da sequence oluşturma penceresi gözükmektedir. Bunun üzerinden sequence ile ilgili detayları  açıklayalım.

  • Sequence Name: Oluşturulacak sequence ismi
  • Sequence Schema : Sequence kullanacağı şema , default olarak dbo şeması seçili gelir fakat birden fazla şema üzerinde kullanmak istiyorsanız  yukarıdaki pencere içerisinde ki “…” kısmına basarak seçebilir ya da araya ”   ;   ”  koyarak şemaları yazabilirsiniz.
  • Data Type : Sequence de kullanılacak data tipi burada ihtiyaca göre int,bigint gibi veritipleri seçebiliriz.
  • Start Value :  Sequence değerinin hangi değerden başlamasını istiyorsak o değeri yazıyoruz.
  • Incerement by:  Sequence değerinin kaçar kaçar artırılacağı değerinin yazıldığı yer.(örnek olarak ikişer ikişer artması için buraya 2 yazmamız yeterli.)
  • Minimum value : minimum değer
  • Maximum value : maximum alacağı değer
  • Cycle :  Maximum değere ulaşıldığında  tekrar baştan başlaması  için bu kutucuk seçilebilir fakat burada dikkat edilmesi gereken maximum değere geldiğinde  Start Value değerinden değil MİNİMUM ya da  MAXİMUM değerden başlamaktadır.

 

Cache Option kısmında  sequence değerlerinin ne kadar cache tutulması gerektiğini veya cache tutulmasın kısmını belirttiğimiz kısımdır.

  • Default size :  SQL server ‘ın sisteme göre kendi belirler net bir rakam yoktur.
  • No cache :  Cache de tutulmasın anlamına gelmektedir.
  • Cache Size:  Belirtilen değer kadar cache de tutulması için kullanılır bu sayede gereksiz I/O maliyetinin önüne geçilir.

 

T-SQL ile sequence oluşturmak için :

CREATE SEQUENCE [dbo].[Sequence_örnek] 
 AS [bigint]
 START WITH 1
 INCREMENT BY 1
 MINVALUE 1
 MAXVALUE 60
 CACHE 
GO

Oluşturduğumuz tablo da  default constraint ekleyerek sequence kullanmak için :

INSERT INTO [dbo].[Table_1] (id,isim,soyisim) VALUES   (NEXT VALUE FOR Sequence_örnek,'Faruk','ERDEM')

Cache ile ilgili detaylı bilgi için sistem dmwleri kullanılabilir.

select*from sys.sequences

Sequence hangi değer de olduğunu öğrenmek için aşağıdaki tsql cümlesini kullanabiliriz.

SELECT current_value
FROM sys.sequences
WHERE name = 'Sequence_örnek' ;

 

Loading