Có một số câu hỏi về cấu trúc bên trong của SQL Server.
Giả sử rằng chúng ta có một bảng trong cơ sở dữ liệu.
Các trang SGAM & GAM theo dõi các phạm vi được chia sẻ và thống nhất trong một khoảng GAM duy nhất (~ 4GB) và giúp chúng tôi tìm loại mức độ phù hợp khi phân bổ các trang / phạm vi (ban đầu 8 trang được phân bổ từ các phạm vi và vị trí hỗn hợp của các trang đó ghi vào các trang IAM và sau đó từ các phạm vi GAM (phạm vi đồng nhất) và thông tin này được lưu trữ trong trang IAM được xâu chuỗi tiếp theo).
Giả sử, các trang cho bảng đã được phân bổ và kích thước bảng là hơn 8 trang và đôi khi, các hàng đã bị xóa, để lại một số không gian có thể sử dụng lại. Làm thế nào SQL Server biết rằng phạm vi có không gian trống?
Các trang có thông tin về kích thước của không gian trống, nhưng quá tốn thời gian để kiểm tra mỗi trang. Các bit trong trang SGAM & GAM không cho chúng tôi biết bất cứ điều gì bên cạnh phần mở rộng được phân bổ hoặc có một số trang miễn phí (toàn bộ trang là miễn phí, không phải một phần).
Các trang tiêu đề tệp & SGAM & GAM & IAM nằm trong số các trang đầu tiên trong một tệp. Cấu trúc dữ liệu nào thực sự chỉ ra chúng?