1.根据数据记录查看当前记录所在的文件编号、page页、以及在页中的插槽。

示例如下:

SELECT top
%%physloc%%,
sys.fn_physlocFormatter (%%physloc%%) AS RID
FROM tableName

--注意;在64位系统中sys.fn_physlocFormatter 整理出来的格式有时候不对,需要手工根据physloc来计算,计算的方法是:

以字节为单位倒叙,如

0x0702000001002200倒叙后是 
0x0022000100000207

前四位0022表示插槽号2*16+2 = 34,接下来的四位0001表示文件号,余下的00000207表示文件号2*16*16+7 = 519

DBCC TraceOn()
DBCC page(数据库名,,,)
DBCC TraceOff()

2.根据sys.system_internals_allocation_units(该视图同sys.allocation_units)获得首页

select OBJECT_NAME(object_id) as Name,p.rows,a.type_desc ,a.total_pages,a.first_page
,a.first_iam_page,a.root_page
from sys.partitions P
join sys.system_internals_allocation_units a on p.partition_id = a.container_id
where object_id = object_id('dbo.Dumplpt')

首页页码按照16进制形式保存,同上按字节反序后,前两组表示2字节文件编号,后4组表示页编号。可用如下函数来返回文件号和页码:

CREATE FUNCTION convert_page_nums (@page_num binary())
RETURNS varchar()
AS
BEGIN
RETURN(convert(varchar(), (convert(int, substring(@page_num, , ))
* power(, )) +
(convert(int, substring(@page_num, , )))) + ':' +
convert(varchar(),
(convert(int, substring(@page_num, , )) * power(, )) +
(convert(int, substring(@page_num, , )) * power(, )) +
(convert(int, substring(@page_num, , )) * power(, )) +
(convert(int, substring(@page_num, , )))) )
END;

3.使用DBCC IND命令,示例如下:

  DBCC IND(testLogDB,'dbo.Dumplpt',-)

将返回形如下结果:

PageFID	PagePID	IAMFID	IAMPID	ObjectID	IndexID	PartitionNumber	PartitionID	iam_chain_type	PageType	IndexLevel	NextPageFID	NextPagePID	PrevPageFID	PrevPagePID
1 197 NULL NULL 69575286 0 1 72057594038976512 In-row data 10 NULL 0 0 0 0
1 196 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 198 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 199 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 200 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 201 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 202 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 203 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 204 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 208 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 209 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 210 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 211 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 212 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0
1 213 1 197 69575286 0 1 72057594038976512 In-row data 1 0 0 0 0 0

  

三种查看SqlServer中数据物理pge页的方法的更多相关文章

  1. EF3:Entity Framework三种开发模式实现数据访问

    前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...

  2. Entity Framework:三种开发模式实现数据访问

    原文地址 http://blog.csdn.net/syaguang2006/article/details/19606715 前言 Entity Framework支持Database First. ...

  3. 查看SQLSERVER内部数据页面的小插件Internals Viewer

    原文:查看SQLSERVER内部数据页面的小插件Internals Viewer 查看SQLSERVER内部数据页面的小插件Internals Viewer 感觉internals viewer这个名 ...

  4. Pandas中查看列中数据的种类及个数

    Pandas中查看列中数据的种类及个数 读取数据 import pandas as pd import numpy as np filepath = 'your_file_path.csv' data ...

  5. [ 原创 ]学习笔记-三种向ListView中填充简单文本的方法

    Android 中ListView是很重要的一块内容 掌握ListView的基本用法 对学习安卓起着举足轻重的作用 今天就介绍一下三种向ListView 填充简单文本的方法 填充其他数据类型的用法之后 ...

  6. sqlserver 中数据导入到mysql中的方法以及注意事项

    数据导入从sql server 到mysql (将数据以文本格式从sqlserver中导出,注意编码格式,再将文本文件导入mysql中): 1.若从slqserver中导出的表中不包含中文采用: bc ...

  7. 三种查看MySQL数据库版本的方法

    https://blog.csdn.net/hj7jay/article/details/51921504 1.使用-V参数 首先我们想到的肯定就是查看版本号的参数命令,参数为-V(大写字母)或者-- ...

  8. 新三种求数列中值SQL之效率再比拼

    在  https://www.cnblogs.com/xiandedanteng/p/12677688.html 中我列举了三种求中值方案,其中日本人MICK的做法因为不适用于二百万结果集而放弃,取而 ...

  9. C# 三种方式实现Socket数据接收(经典)

    Stream.Read 方法 当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数. 语法: public abstract int Read(byte[] buffer, in ...

随机推荐

  1. Servlet常见错误及解决方法

    常见错误及解决方法 1. 404产生的原因为Web服务器(容器)根据请求地址找不到对应资源,以下情况都会出现404的错误提示: 输入的地址有误(应用名大小写不正确,名称拼写不正确) 在web.xml文 ...

  2. spring实战二之Bean的自动装配(非注解方式)

    Bean的自动装配 自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bea ...

  3. eBay 消息发送(2)

      1.简介 Call Index Doc: http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/index.html   消息发送主要 ...

  4. HDU3247 Resource Archiver(AC自动机+BFS+DP)

    题目,求最短的包含所有n个DNA片段且不包含任何一个病毒片段的序列. 容易用所有DNA片段和病毒片段建一个AC自动机,构造fail时处理一下各个结点后缀是DNA或者病毒的情况,然后dp[S][u]表示 ...

  5. BZOJ3251 : 树上三角形

    BZOJ AC1000题纪念~~~ 将x到y路径上的点权从小到大排序 如果不存在b[i]使得b[i]+b[i+1]>b[i+2]则无解 此时b数列增长速度快于斐波那契数列,当达到50项时就会超过 ...

  6. BZOJ3249 : [ioi2013]game

    线段树套Treap 外层的线段树需要动态开节点 内层Treap需要注意的是,相同y坐标的点不一定是同一个点,所以需要再次离散 空间$O(n\log n)$ 时间$O(n\log^2n)$ #inclu ...

  7. c/c++ 笔试面试题

    #include <iostream> using namespace std; class A { public: void sayHi(){ cout<<"hel ...

  8. object-c 协议和委托

    协议相当于接口 委托相当于帮助实现其它类的功能 object-c提供的协议机制,一个类可以实现多个协议,从而感觉上像多继承一样

  9. js for循环,为什么一定要加var定义i变量

    我知道,有些人(譬如之前的我)写js的for循环时,都不习惯加上var,这当然是语法允许的.譬如下面. for(i=0;i<10;i++){//就不写成: var i=0 alert(i); } ...

  10. jquery限制div字符长度,超出部分已“…”显示

    $(".content").each(function(){ if($(this).text().length>100){ $(this).text($(this).text ...