Memahami Halaman IAM: interval sejauh

9

Saya membaca buku Itzik "Querying Microsoft SQL Server 2012" serta membaca / menonton materi pendidikan yang berbeda di internet. Tujuan saya adalah untuk memiliki pemahaman yang berguna tentang bagaimana internal basis data bekerja.

Saya memiliki sedikit keraguan bahwa saya tidak dapat menyelesaikan tentang halaman IAM. Karena saya masih dalam tahap awal pemahaman saya, saya mungkin perlu bantuan tambahan dari mereka yang memiliki gambaran yang lebih baik, jadi maafkan saya jika keraguan saya tampak konyol.

Dalam bab 15 "Menerapkan Indeks dan Statistik" muncul gambar - ditunjukkan di bawah ini - sebagai contoh halaman IAM:

Contoh halaman IAM

Anda dapat melihat dengan panah merah apa yang tampaknya 16 halaman terkait dengan tingkat yang sama. Bagaimana mungkin? Apakah ini kesalahan penulis / editor? Atau apa yang lebih mungkin: apakah ada sesuatu yang tidak saya mengerti dengan benar?

Pertanyaan lain yang saya miliki terkait dengan interval halaman. Mengapa mereka tidak bersebelahan? Ambil contoh tingkat terakhir, ia akan mencakup halaman dengan id 336 hingga 22642, atau yang sebelumnya, 296 hingga 328.

Aleix
sumber

Jawaban:

9

Anda dapat melihat dengan panah merah apa yang tampaknya 16 halaman terkait dengan tingkat yang sama. Bagaimana mungkin?

Panah merah menunjuk ke entri yang menunjukkan bahwa luasan mulai dari 1:176 dan 1:184dialokasikan ke entitas saat ini (kedua luapan seragam 8 halaman sedang digunakan) dalam interval GAM.

Pertanyaan lain yang saya miliki terkait dengan interval halaman. Mengapa mereka tidak bersebelahan? Ambil contoh tingkat terakhir, ia akan mencakup halaman dengan id 336 hingga 22642, atau yang sebelumnya, 296 hingga 328.

Mereka bukan luasan, itu adalah rentang jangkauan yang dialokasikan untuk entitas saat ini (misalnya tabel, indeks) dalam interval GAM 4GB yang dicakup halaman IAM saat ini.

Rentang tingkat yang ditampilkan NOT ALLOCATEDmungkin sedang digunakan oleh entitas lain.

Untuk informasi lebih lanjut, lihat Inside the Storage Engine: halaman IAM, rantai IAM, dan unit alokasi oleh Paul Randal.

Paul White 9
sumber