oracle auto-increment sorunsalı - 2
Önceki yazılarımdan birinde oracle tablo yapılarında auto-increment bir alan oluşturulamadığı bunun yerine sequences yapısının bulunduğundan bahsetmiştim.
O yazımı okuyan database sorumlumuz, yazıda eksik noktalarımın olduğu söyledi. Bunlardan bahsetmek istedim.
Oracle sequences yarattığınızda, belli bir süre için belli bir sayıda auto-increment id bloğu yaratıyor. Bu bloğu o sürede bitirmezseniz kullanılmıyor ve kaldığı yerden ayrı bir blog daha oluşturuyor. Örneğin 20 tane ayırdı. Süresi geçene kadar sadece 12 tanesini kullandınız ve süre bittiğinde geri kalan 8 id iptal oluyor. 21'den başlayarak yeni bir blog oluşturuyor.
Buna güzel bir örnek verebiliriz: Örneğin bankaya gittiniz fantazi olsun diye 10 tane sıra numarası aldınız. O gün saat 5 oldu banka kapandı. Ertesi gün geldiğinizde yeni bir blog almak zorunda kalacaksınız. Örneğin yaşanabilitesi her ne kadar fazla olmasa da bu duruma uygun bir örnek ![]()
Eğer sequences yaratırken cache yapısnı kullanmazsanız yukarda bahsedilenler geçerli olmayacaktır. Bunun içinde kullandığınız oracle tool'da sequcences yaratırken no-cache seçeneğini seçiyorsunuz. Eğer değiştirmez default olarak bırakırsanız cache'li ve 20'lik blog alarak yaratacaktır.