Menulis Halaman

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

I/O dari instans Mesin Database mencakup penulisan logis dan fisik. Penulisan logis terjadi ketika data dimodifikasi di halaman di singgahan buffer. Penulisan fisik terjadi ketika halaman ditulis dari cache buffer ke disk.

Ketika halaman dimodifikasi dalam cache buffer, halaman tidak segera ditulis kembali ke disk; sebagai gantinya, halaman ditandai sebagai kotor. Ini berarti bahwa halaman dapat memiliki lebih dari satu tulisan logis yang dibuat sebelum ditulis secara fisik ke disk. Untuk setiap penulisan logis, catatan log transaksi disisipkan dalam cache log yang merekam modifikasi. Rekaman log harus ditulis ke disk sebelum halaman kotor terkait dihapus dari cache buffer dan ditulis ke disk. SQL Server menggunakan teknik yang dikenal sebagai pengelogan write-ahead yang mencegah penulisan halaman kotor sebelum rekaman log terkait ditulis ke disk. Ini penting untuk pekerjaan manajer pemulihan yang benar. Untuk informasi selengkapnya, lihat Log Transaksi Write-Ahead.

Ilustrasi berikut menunjukkan proses untuk menulis halaman data yang dimodifikasi.

Writing_Pages

Ketika manajer buffer menulis halaman, manajer buffer mencari halaman kotor yang berdekatan yang dapat disertakan dalam satu operasi pengumpulan-tulis. Halaman yang berdekatan memiliki ID halaman berturut-turut dan berasal dari file yang sama; halaman tidak harus bersebelah dalam memori. Pencarian berlanjut ke depan dan mundur hingga salah satu peristiwa berikut terjadi:

  • Halaman bersih ditemukan.
  • 32 halaman telah ditemukan.
  • Halaman kotor ditemukan yang nomor urutan lognya (LSN) belum dihapus dalam log.
  • Halaman ditemukan yang tidak dapat segera dikaitkan.

Dengan cara ini, seluruh set halaman dapat ditulis ke disk dengan satu operasi pengumpulan-tulis.

Tepat sebelum halaman ditulis, bentuk perlindungan halaman yang ditentukan dalam database ditambahkan ke halaman. Jika perlindungan halaman robek ditambahkan, halaman harus di-latch EX (secara clusif) untuk I/O. Ini karena perlindungan halaman yang robek memodifikasi halaman, membuatnya tidak cocok untuk dibaca utas lain. Jika perlindungan halaman checksum ditambahkan, atau database tidak menggunakan perlindungan halaman, halaman dikaitkan dengan kait UP(date) untuk I/O. Kait ini mencegah orang lain memodifikasi halaman selama penulisan, tetapi masih memungkinkan pembaca untuk menggunakannya. Untuk informasi selengkapnya tentang opsi perlindungan halaman I/O disk, lihat Manajemen Buffer.

Halaman kotor ditulis ke disk dengan salah satu dari tiga cara:

  • Penulisan malas
    Penulis malas adalah proses sistem yang menjaga buffer gratis tetap tersedia dengan menghapus halaman yang jarang digunakan dari cache buffer. Halaman kotor pertama kali ditulis ke disk.

  • Penulisan yang bersemangat
    Proses penulisan yang bersemangat menulis halaman data kotor yang terkait dengan operasi yang dicatat secara minimal seperti sisipan massal dan pilih. Proses ini memungkinkan pembuatan dan penulisan halaman baru berlangsung secara paralel. Artinya, operasi panggilan tidak perlu menunggu sampai seluruh operasi selesai sebelum menulis halaman ke disk.

  • Pos pemeriksaan
    Proses titik pemeriksaan secara berkala memindai cache buffer untuk buffer dengan halaman dari database tertentu dan menulis semua halaman kotor ke disk. Titik pemeriksaan menghemat waktu selama pemulihan nanti dengan membuat titik di mana semua halaman kotor dijamin telah ditulis ke disk. Pengguna dapat meminta operasi titik pemeriksaan dengan menggunakan perintah CHECKPOINT, atau Mesin Database dapat menghasilkan titik pemeriksaan otomatis berdasarkan jumlah ruang log yang digunakan dan waktu berlalu sejak titik pemeriksaan terakhir. Selain itu, titik pemeriksaan dihasilkan ketika aktivitas tertentu terjadi. Misalnya, ketika data atau file log ditambahkan atau dihapus dari database, atau ketika instans SQL Server dihentikan. Untuk informasi selengkapnya, lihat Titik pemeriksaan dan Bagian Aktif Log.

Proses penulisan malas, penulisan bersemangat, dan titik pemeriksaan tidak menunggu operasi I/O selesai. Mereka selalu menggunakan I/O asinkron (atau tumpang tindih) dan melanjutkan pekerjaan lain, memeriksa keberhasilan I/O nanti. Ini memungkinkan SQL Server untuk memaksimalkan sumber daya CPU dan I/O untuk tugas yang sesuai.

Lihat Juga

Panduan Arsitektur Halaman dan Luas
Membaca Halaman