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' ;