allocation Unit 理解

Hobt_id和Partition_id这两个字段的值是相同的,每一个分区都有一个ID值,这个值是Partition_id。在每一个partition中,最多有三个allocation unit,type分别是 in_row, Lob, row_overflow。每一个allocation unit 都含有很多data page,存储data和index。

Allocation Unit 可以理解为partition的单一data pages的集合。

Each parition can have three types of rows, each stored on its own set of pages.

These types are called in-row data pages, row-overflow data pages and LOB data pages.

A set of pages of one particular type for one particular partition is called an allocation unit.

Each heap or index on each partition can have as many as three allocation units.

示例图

Sql server 提供两个视图用于查看 allocation unit。

1,sys.allocation_units

Contains a row for each allocation unit in the database.


Column name


Data type


Description


allocation_unit_id


bigint


ID of the allocation unit. Is unique within a database.


type


tinyint


Type of allocation unit:

0 = Dropped

1 = In-row data (all data types, except LOB data types)

2 = Large object (LOB) data (text, ntext, image, xml, large value types, and CLR user-defined types)

3 = Row-overflow data


type_desc


nvarchar(60)


Description of the allocation unit type:

  • DROPPED
  • IN_ROW_DATA
  • LOB_DATA
  • ROW_OVERFLOW_DATA

container_id


bigint


ID of the storage container associated with the allocation unit.

If type = 1 or 3, container_id = sys.partitions.hobt_id.

If type is 2, then container_id = sys.partitions.partition_id.

0 = Allocation unit marked for deferred drop


data_space_id


int


ID of the filegroup in which this allocation unit resides.


total_pages


bigint


Total number of pages allocated or reserved by this allocation unit.


used_pages


bigint


Number of total pages actually in use.


data_pages


bigint


Number of used pages that have:

  • In-row data
  • LOB data
  • Row-overflow data

Value returned excludes internal index pages and allocation-management pages.

When you drop or rebuild large indexes, or drop or truncate large tables, the Database Engine defers the actual page deallocations, and their associated locks, until after the transaction commits. Deferred drop operations do not release allocated space immediately. Therefore, the values returned by sys.allocation_units immediately after dropping or truncating a large object may not reflect the actual disk space available.

2,sys.system_internals_allocation_units

比 sys.allocation_units 多三个column:first page,root page 和 first iam page

sys.system_internals_allocation_units 系统视图保留为仅供 Microsoft SQL Server 内部使用。

参考文档:

https://technet.microsoft.com/zh-cn/library/ms189051(v=sql.105).aspx

https://msdn.microsoft.com/en-us/library/ms189792.aspx

时间: 2025-01-04 03:23:55

allocation Unit 理解的相关文章

Attempt to fetch logical page (...) in database 2 failed. It belongs to allocation unit xxxx not to xxx

今天一个同事说在一个生产库执行某个存储过程,遇到了错误: Fatal error 605 occurred at jul 29 2014 我试着执行该存储过程,结果出现下面错误,每次执行该存储过程,得到的错误内容都不一样(page变化,还有就是allocation unit)变化 消息 605,级别 21,状态 3,过程 usp_xxxxxxxxx,第 228 行 Attempt to fetch logical page (7:121808) in database 2 failed. It

[转]Under the covers: IAM chains and allocation units in SQL Server 2005

(I'm sitting here in Seattle airport at 7am on Sunday waiting to catch the same flight to Boston that I caught two weeks ago. Instead of TechEd, this time I'm going to a training course at MIT. I'd enjoy the air travel a lot more with a bigger gap in

对ASM存储管理的一些初步理解记录

ASM:Automatic Storage Management,是ORACEL10G以后为了简化存储管理的复杂性,也是为了摆脱对其他厂商的依赖而推出的.ASM作为目前ORACLE推荐的首选存储方案,除了具有集群文件系统的功能外,同时还集成了冗余.IO分散等卷管理器的功能.我们可以通过两种方式使用ASM,包括建立在裸设备上,如果安装了ASMLib,也可以建立的块设备上. 使用ASM需要从ORACLE官方网站下载ASM驱动包,一般包括了ASM和ASMLib两部分,需要注意ASM和ASMLib是两部

[深入理解文件系统之十三] 基于快照的文件系统备份

在实际生产系统上存储的数据,都是基于某种文件系统的形式组织.存放起来的.对一些关键的数据,就需要备份.通常,有两种方式: 1.基于Linux/unix下的tar/cpio等工具 虽然它也能实现备份,但不足之处在于有IO写入的情况下,可能无法保证文件系统的integrity (完整性). 2. frozen-image 虽然备份的时候停下业务.卸载 文件系统就可以了,但是系统管理员一般不愿意停下业务.或者卸载文件系统,因此stable snapshot技术出现了.(snapshot/frozen-

Unix:关于一个file在file system和disk中占用空间

参考文献: Harley Hahns:Guide to Unix and Linux, Chap 24 -->首先要有的关键概念:the amount of "disk space" used by a file is not the same as the amount of data in the file. -->其次,理解在file system和disk(or other storage medium)中都存在各自的最小空间单元:file system中叫&quo

ORACLE ASM 日常管理

ASM概述 Automatic Storage Management(ASM)是Oracle数据库10g中一个非常出色的新特性,它以平台无关的方式提供了文件系统.逻辑卷管理器以及软件RAID等服务.ASM可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除"热点". ASM中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名.由于操作系统无法访问 ASM 中存储的文件,因此对使用ASM

【翻译自mos文章】使用buffer memory 参数来调整rman的性能。

使用buffer memory 参数来调整rman的性能. 本文翻译自mos文章:RMAN Performance Tuning Using Buffer Memory Parameters (Doc ID 1072545.1) rman 性能调整的目的是分辨一个特定的backup or  restore job的瓶颈. 并使用使用rman命令.初始化参数 或者对physical media的调整来提高整体的性能. 由于数据库容量持续变大,在客户的环境中,几十到几百TB的数据库很常见, serv

SQLserver数据文件(MDF)的页面文件头结构剖析

先执行一下以下SQL语句,我的测试环境为SQL2005 dbcc traceon(3604) godbcc page(master,1,0,2) 可以看到MDF文件的一些物理结构信息,其中包括重要的头96个字节.也就是第一个页面的文件头. ........ PAGE HEADER: Page @0x03FA0000 m_pageId = (1:0)                     m_headerVersion = 1                  m_type = 15m_type

SQL Server MDF 文件打开和相关问题图解

为了开发时的方便和不时之需:研究下不需要SQL Server,直接打开MDF数据库文件的软件: 1 SQL MDF Viewer 这是一个好工具:偶不得不说:不错:没有SQL Server的情况下,成功打开了MDF文件: 可以显示记录和数据库结构:不过看不到存储过程的代码,视图的代码能看到: 2 网际数据库浏览器 先安装, 界面: 登录要用户名密码:那么就是需要Sql Server 运行才能打开MDF 文件了: 如下图,原来此软件是用不同开发语言和数据库的连接字符串语法去连接数据库然后查询数据,