SQL Server 查看物理页存储
创建测试表
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 查看物理页存储的更多相关文章
- SQL Server 堆表行存储大小(Record Size)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 堆表行记录存储格式(Heap) 案例分析(Case) 参考文献(References) 二.背 ...
- SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆 <第一篇>
一.存储结构 在SQL Server中,有许多不同的可用排列规则选项. 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D").因为所有内容都 ...
- SQL Server 深入解析索引存储(下)
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/非聚集索引 概述 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 基础表的数据行不按非 ...
- SQL Server 深入解析索引存储(中)
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/堆 概述 本篇文章是关于堆的存储结构.堆是不含聚集索引的表(所以只有非聚集索引的表也是堆).堆的 sys.parti ...
- SQL Server 表和索引存储结构
在上一篇文章中,我们介绍了SQL Server数据文件的页面类型,系统通过96个字节的头部信息和系统表从逻辑层面上将表的存储结构管理起来,具体到表的存储结构上,SQL Server引入对象.分区.堆或 ...
- SQL Server 深入解析索引存储(非聚集索引)
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/非聚集索引 概述 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 基础表的数据行不按非 ...
- SQL Server 深入解析索引存储(堆)
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/堆 概述 本篇文章是关于堆的存储结构.堆是不含聚集索引的表(所以只有非聚集索引的表也是堆).堆的 sys.parti ...
- SQL SERVER 查看mdf ldf文件路径
SQL SERVER 查看mdf ldf文件路径 select filename from sysfiles
- sql server 查看对象最后修改时间
sql server 查看对象最后修改时间,根据最后修改时间排序 存储过程 SELECT * FROM sys.all_objects WHERE TYPE='P' ORDER BY modify_ ...
随机推荐
- express创建项目
sudo apt-get install node-express-generator dave@voctrals:~/WebstormProjects/nodejs-study/express$ e ...
- HEAP CORRUPTION 错误
一般是new一块内存过小, 在这个内存块上写入的内容过大, delete时出现的错误; 如: char* ptr = new char[2]; //申请了两个字节 *ptr = "1234 ...
- JS-改变页面的颜色(二)
需求:点击页面的按钮,改变页面的颜色 思路:一先画出最简单的页面,二想办法获取页面的body节点,三想办法修改body节点的背景颜色属性,四通过一个方法获取随机的颜色值 和第一个例 ...
- 基于案例贯通 Spark Streaming 流计算框架的运行源码
本期内容 : Spark Streaming+Spark SQL案例展示 基于案例贯穿Spark Streaming的运行源码 一. 案例代码阐述 : 在线动态计算电商中不同类别中最热门的商品排名,例 ...
- scrollWidth的巧妙运用
再了无生趣的工作也是能够帮助我们提高的~ 最近工作比较无聊,于是就想到了写一个滚动条插件,在借鉴了mCustomerScrollbar这个组件之后我简单的写了一个类似的,当然,相比于它的2000多行代 ...
- Qlikview List控件
将纵向展示变为横向展示 方法: ListBox属性分页,“外观”分页“单列”属性不要打钩,用鼠标调整控件高度,Listbox控件会自适应现实将数据打横现实.
- css之让文字在一定范围内显示,不超过固定的宽度和高度
- java 的SYSTEM类【转】
java 的SYSTEM类[转] Posted on 2009-12-03 16:46 火之光 阅读(728) 评论(0) 编辑 收藏 System类代表系统,系统级的很多属性和控制方法都放置在该类的 ...
- SVG 使用
SVG即Scalable Vector Graphics可缩放矢量图形,使用XML格式定义图形, 主要优势在于可缩放的同时不会影响图片的质量. SVG 在html 中常用的方法 1.使用<img ...
- ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread
ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[appclient-registration-retr ...