创建测试表

Use Test

create table dbo.employee(
emp_lname varchar(12) not null,
emp_fname varchar(12)not null,
address varchar(30)not null,
phone char(12) not null,
job_level smallint not null
)

从以下视图中获取页的地址信息

SELECT object_name(object_id) as name,
rows,type_desc as page_type_desc,total_pages as Pages,first_page
FROM sys.partitions p
join sys.system_internals_allocation_units a
on p.partition_id = a.container_id
where P.object_id = object_id('dbo.employee')

创建通过页地址获取页ID

CREATE FUNCTION convert_page_nums(@page_num binary(6))
RETURNS VARCHAR(11)
AS
BEGIN
RETURN(
CONVERT(VARCHAR(2),(
CONVERT(INT,SUBSTRING(@page_num,6,1))* POWER(2,8)
) +
(CONVERT(INT,SUBSTRING(@page_num,5,1)))
) + ':' +
CONVERT(VARCHAR(11),
(CONVERT(INT,SUBSTRING(@page_num,4,1)) * POWER(2,24)) +
(CONVERT(INT,SUBSTRING(@page_num,3,1)) * POWER(2,16)) +
(CONVERT(INT,SUBSTRING(@page_num,2,1)) * POWER(2,8)) +
(CONVERT(INT,SUBSTRING(@page_num,1,1)))
)
)
END

将上部得到的first_page  当参数传入

select [dbo].[convert_page_nums](0x970000000100)

得到结果:1:151

还有一种方法得到PageID

dbcc ind(Test,employee, -1)

根据PageID找出页中的详细信息

dbcc traceon(3604)
dbcc page (Test,1,151,1)

结果分四个段落:Buffer, Page Header, Data 和 Offset Table (真正的偏移矩阵)。Buffer段落显示了给定页面的缓冲信息。在此Buffer时指一中内存中的结构,用于管理页面,此段的信息仅当该页面处于内存中才有意义。

显示结果:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

PAGE: (1:151)

BUFFER:

BUF @0x0000000085FA7680

bpage = 0x000000008513C000 bhash = 0x0000000000000000 bpageno = (1:151)
bdbid = 15 breferences = 0 bcputicks = 0
bsampleCount = 0 bUse1 = 41047 bstat = 0xc0000b
blog = 0x32159bb bnext = 0x0000000000000000

PAGE HEADER:

Page @0x000000008513C000

m_pageId = (1:151) m_headerVersion = 1 m_type = 1
m_typeFlagBits = 0x4 m_level = 0 m_flagBits = 0x8000
m_objId (AllocUnitId.idObj) = 36 m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72057594040287232
Metadata: PartitionId = 72057594039238656 Metadata: IndexId = 0
Metadata: ObjectId = 261575970 m_prevPage = (0:0) m_nextPage = (0:0)
pminlen = 18 m_slotCnt = 1 m_freeCnt = 8062
m_freeData = 128 m_reservedCnt = 0 m_lsn = (21:480:20)
m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0
m_tornBits = 0

Allocation Status

GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED
PFS (1:1) = 0x61 MIXED_EXT ALLOCATED 50_PCT_FULL DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED

DATA:

Slot 0, Offset 0x60, Length 32, DumpStyle BYTE

Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS
Record Size = 32
Memory Dump @0x000000001023A060

0000000000000000: 30001200 64202020 20202020 20202020 †0...d
0000000000000010: 01000500 0003001e 001f0020 00616263 †........... .abc

OFFSET TABLE:

Row - Offset
0 (0x0) - 96 (0x60)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

SQL Server 查看物理页存储的更多相关文章

  1. SQL Server 堆表行存储大小(Record Size)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 堆表行记录存储格式(Heap) 案例分析(Case) 参考文献(References) 二.背 ...

  2. SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆 <第一篇>

    一.存储结构 在SQL Server中,有许多不同的可用排列规则选项. 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D").因为所有内容都 ...

  3. SQL Server 深入解析索引存储(下)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/非聚集索引 概述 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 基础表的数据行不按非 ...

  4. SQL Server 深入解析索引存储(中)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/堆 概述 本篇文章是关于堆的存储结构.堆是不含聚集索引的表(所以只有非聚集索引的表也是堆).堆的 sys.parti ...

  5. SQL Server 表和索引存储结构

    在上一篇文章中,我们介绍了SQL Server数据文件的页面类型,系统通过96个字节的头部信息和系统表从逻辑层面上将表的存储结构管理起来,具体到表的存储结构上,SQL Server引入对象.分区.堆或 ...

  6. SQL Server 深入解析索引存储(非聚集索引)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/非聚集索引 概述 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 基础表的数据行不按非 ...

  7. SQL Server 深入解析索引存储(堆)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/堆 概述 本篇文章是关于堆的存储结构.堆是不含聚集索引的表(所以只有非聚集索引的表也是堆).堆的 sys.parti ...

  8. SQL SERVER 查看mdf ldf文件路径

    SQL SERVER 查看mdf ldf文件路径 select filename from sysfiles

  9. sql server 查看对象最后修改时间

    sql server 查看对象最后修改时间,根据最后修改时间排序 存储过程 SELECT * FROM sys.all_objects WHERE  TYPE='P' ORDER BY modify_ ...

随机推荐

  1. c#操作文件夹得读写权限

    对文件夹设置为Everyone的权限,首先需要先添加引用 using System.Security.AccessControl; 采用下面的方法对文件夹设置Everyone权限   /// < ...

  2. Intel DPDK的一些参资料

    dpdk.org What it is Intel® DPDK is a set of libraries and drivers for fast packet processing on x86 ...

  3. Hibernate5.2之HQL查询

    Hibernate5.2之HQL查询                                                                  一. 介绍 Hibernate的 ...

  4. JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释

    笔者最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: <span styl ...

  5. UML精粹3 - 类图,序列图,CRC

    类图Class diagram 类图描述系统中的对象类型,以及它们之间的各种静态关系.类图也展示类的性质和操作,以及应用于对象连接方式的约束.UML中的特性feature,涵盖了性质property和 ...

  6. 用WinDbg调试Windows和驱动程序

    由于本人能力有限,翻译不足之处敬请谅解,欢迎批评指正:sunylat@163.com MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/h ...

  7. 使用php添加定时任务

    1.  php执行外部命令的函数:       system(),exec(),passthru()      注意点:     1.调用的路径,相对路径有时候不是很靠谱.           sys ...

  8. windows 上执行python pywin32.exe

    大家熟知的python脚本可以在linux系统上直接运行,因为linux上会安装python编译器 然而windows不会安装,如果想要别人直接运行你发布的python脚本,一种方法是在他的windo ...

  9. 三、Distributing Maya Plugins

    For example, a fully implemented render utility node will have at least three files: the plug-in fil ...

  10. Website Speed Optimization Guide for Google PageSpeed Rules

    原链接地址:http://www.artzstudio.com/2016/07/website-speed-optimization-guide-for-google-pagespeed-rules/ ...