Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Page'ler, Heap ve Clustered Index: SQL Server Veriyi Diskte Nasıl Tutar?
SQL Server veriyi 8 KB'lık page'lerde tutar; clustered index tablonun kendisi olan sığ bir B-tree'dir, heap ise sırasız page'ler ve güncellemede forwarded record demektir. Gerçek page'ler, ROW_OVERFLOW/LOB, clustering key seçimi, Guid.CreateVersion7 değerlerinin SQL Server sıralamasında NEWID kadar rastgele olduğunu gösteren deney ve fill factor ile page density ölçümleri.
Id'yi Dışarıya Açmak: int Identity, GUID v7 ve Public Id Ayrımı
Dışarıya açılan id için en dengeli yol, içeride clustered key olarak bigint identity, dışarıda değişmez ve unique bir PublicId tutmak ve her sorguda sahiplik koşulu aramaktır. Ölçümde Guid.CreateVersion7 SQL Server'da v4 kadar parçalandı (yüzde 99, 4.987 sayfa), çünkü SQL Server uniqueidentifier'ı son 6 byte'a göre sıralıyor; EF Core'un sequential generator'ı ise identity'ye yakın kaldı.