Aracılığıyla paylaş


Veritabanı Altyapısı'nda sayfa yazma

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'te SQL Veritabanı

Veritabanı Motoru örneğinden gelen G/Ç mantıksal ve fiziksel yazma işlemleri içerir. Arabellek önbelleğindeki bir sayfada veriler değiştirildiğinde mantıksal yazma gerçekleşir. Fiziksel yazma, sayfa arabellek önbelleğinden diske yazıldığında gerçekleşir.

Bir sayfa arabellek önbelleğinde değiştirildiğinde, hemen diske geri yazılamaz; bunun yerine, sayfa kirli olarak işaretlenir. Başka bir deyişle, diske fiziksel olarak yazılmadan önce sayfaya birden fazla mantıksal yazma işlemi yapılabilir. Her mantıksal yazma için, değişikliği kaydeden günlük önbelleğine bir işlem günlüğü kaydı eklenir. günlük kayıtlar, kirli sayfanın arabellek önbelleğinden kaldırılması ve diske yazılmasından önce diske yazılmalıdır.

SQL Server, ilişkili günlük kaydı diske yazılmadan önce kirli bir sayfa yazmayı engelleyen, önceden yazma günlüğü (WAL) olarak bilinen bir teknik kullanır. Bu, kurtarma yöneticisinin doğru çalışması için gereklidir. Daha fazla bilgi için bkz. İşlem günlüğü.

SQL Server değiştirilmiş bir veri sayfasını nasıl yazar?

Aşağıdaki çizimde, değiştirilmiş veri sayfası yazma işlemi gösterilmektedir.

Writing_Pages ekran görüntüsü.

Bellek yöneticisi bir sayfa yazdığında, tek bir toplama-yazma işlemine dahil edilebilecek bitişik kirli sayfaları arar. Bitişik sayfaların ardışık sayfa kimlikleri vardır ve aynı dosyadandır; sayfaların bellekte bitişik olması gerekmez. Arama, aşağıdaki olaylardan biri gerçekleşene kadar hem ileri hem de geri devam eder:

  • Temiz bir sayfa bulunur.
  • 32 sayfa bulundu.
  • Henüz kayıtta boşaltılmamış kayıt sırası numarasına (LSN) sahip bir kirli sayfa bulunur.
  • Hemen mandallanamayan bir sayfa bulundu.

Bu şekilde, sayfa kümesinin tamamı tek bir toplama-yazma işlemiyle diske yazılabilir.

Bir sayfa yazıldıktan hemen önce, veritabanında belirtilen sayfa koruma biçimi sayfaya eklenir.

  • Bozuk sayfa koruması eklenirse, sayfanın G/Ç için özel olarak (EX) mandallanması gerekir. Bunun nedeni, yırtılmış sayfa korumasının sayfayı değiştirerek başka bir iş parçacığının okuması için uygunsuz hale getirmesidir.

  • Sağlama toplamı sayfa koruması eklenirse veya veritabanı sayfa koruması kullanmıyorsa, sayfa G/Ç için bir güncelleştirme (UP) mandalı ile kilitlenmiş olur. Bu mandal, yazma sırasında başka birinin sayfayı değiştirmesini engeller, ancak yine de okuyucuların sayfayı kullanmasına izin verir.

Disk G/Ç sayfa koruma seçenekleri hakkında daha fazla bilgi için Arabellek yönetimi bölümüne bakın.

Kirli sayfalar diske nasıl yazılır?

Kirli bir sayfa diske üç yoldan biriyle yazılır:

Yavaş yazma, istekli yazma ve denetim noktası işlemleri Girdi/Çıktı işleminin tamamlanmasını beklemez. Her zaman asenkron (veya örtüşen) G/Ç kullanır ve diğer çalışmalara devam eder, daha sonra G/Ç başarısını kontrol ederler. Bu, SQL Server'ın uygun görevler için hem CPU hem de G/Ç kaynaklarını en üst düzeye çıkarmasını sağlar.

Yavaş yazma işlemi

Gecikmeli yazıcı, arabellek önbelleğinden seyrek kullanılan sayfaları kaldırarak boş arabellekleri kullanılabilir durumda tutan bir sistem işlemidir. Kirli sayfalar önce diske yazılır.

Hızlı yazma işlemi

İstekli yazma işlemi, toplu ekleme ve seçme gibi en az günlüğe kaydedilen işlemlerle ilişkili kirli veri sayfalarını yazar. Bu işlem, yeni sayfa oluşturma ve yazma işlemlerinin paralel olarak gerçekleştirilmesini sağlar. Başka bir ifadeyle, çağrı işleminin sayfaları diske yazmadan önce işlemin tamamı bitene kadar beklemesi gerekmez.

Denetim noktası işlemi

Denetim noktası işlemi, belirli bir veritabanına ait sayfaların bulunduğu tamponları aramak için tampon önbelleğini düzenli aralıklarla tarar ve tüm kirli sayfaları diske yazar. Denetim noktaları, tüm kirli sayfaların diske yazılmasının garantilendiği bir nokta oluşturarak daha sonra kurtarma sırasında zaman kazandırır.

Kullanıcı komutunu kullanarak CHECKPOINT bir denetim noktası işlemi isteyebilir veya Veritabanı Altyapısı, kullanılan günlük alanı miktarına ve son denetim noktasından bu yana geçen süreye göre otomatik denetim noktaları oluşturabilir. Ayrıca, belirli etkinlikler gerçekleştiğinde bir denetim noktası oluşturulur. Örneğin, bir veri veya günlük dosyası bir veritabanından eklendiğinde veya kaldırıldığında ya da SQL Server örneği durdurulduğunda.

Daha fazla bilgi için bkz. Denetim noktaları ve günlüğün etkin bölümü.