Menulis Halaman
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform 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; sebaliknya, 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, rekaman log transaksi disisipkan dalam cache log yang merekam modifikasi. Catatan 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 ini memperlihatkan proses untuk menulis halaman data yang dimodifikasi.

Ketika manajer buffer menulis halaman, ia mencari halaman kotor yang berdampingan yang dapat disertakan dalam satu operasi pengumpulan-tulis. Halaman yang bersebelahan memiliki ID halaman berturut-turut dan berasal dari file yang sama; halaman tidak harus berseberangan 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 yang robek ditambahkan, halaman harus dikaitkan 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 buffer cache. Halaman kotor pertama kali ditulis ke disk.Penulisan bersemangat
Proses tulis yang bersemangat menulis halaman data kotor yang terkait dengan operasi yang dicatat secara minimal seperti penyisipan massal dan pilih. Proses ini memungkinkan pembuatan dan penulisan halaman baru berlangsung secara paralel. Artinya, operasi panggilan tidak harus menunggu sampai seluruh operasi selesai sebelum menulis halaman ke disk.Titik 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 yang 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, penulisan, dan titik pemeriksaan yang malas 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.