了解IAM页面:范围间隔


9

我正在阅读Itzik的书《查询Microsoft SQL Server 2012》,以及在互联网上阅读/观看不同的教学材料。我的目的是对数据库内部如何工作有一个有益的了解。

我有一个小小的疑问,我无法解决有关IAM页面的问题。由于我尚处于了解的初期,因此也许我需要那些了解情况更好的人的额外帮助,因此,如果我的疑问似乎很可笑,请原谅我。

在第15章“实现索引和统计信息”中,出现了一个图像-如下图所示-作为IAM页面的示例:

IAM页面示例

您可以通过红色箭头看到与同一范围相关的16页内容。那怎么可能?是作者/编辑的错误吗?还是更有可能的:我是否有一些不正确的理解?

我的另一个问题与页面间隔有关。为什么它们不连续?以最后一个范围为例,它将覆盖ID为336至22642或前一个ID为296至328的页面。

Answers:


9

您可以通过红色箭头看到与同一范围相关的16页内容。那怎么可能?

红色箭头指向一个条目,该条目显示在GAM间隔内从处开始 1:1761:184分配给当前实体的区段(均使用8页统一区段)。

我的另一个问题与页面间隔有关。为什么它们不连续?以最后一个范围为例,它将覆盖ID为336至22642或前一个ID为296至328的页面。

它们不是范围,而是在当前IAM页覆盖的4GB GAM间隔内分配给当前实体(例如表,索引)的范围范围。

所示范围范围NOT ALLOCATED可能已被其他实体使用。

有关更多信息,请参阅Paul Randal 的《存储引擎内部:IAM页面》,IAM链和分配单元

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.