三种查看SqlServer中数据物理pge页的方法

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

示例如下:

SELECT top 10 
%%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(3604) 
DBCC page(数据库名,1,40995,0) 
DBCC TraceOff(3604)

 

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(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;

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

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

将返回形如下结果:

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

  

转载于:https://www.cnblogs.com/thaughtZhao/p/4262960.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#10 和 .NET6 代码跨平台开发

零、前言有数千页长的编程书籍,旨在成为 C# 语言、.NET 库、网站、服务、桌面和移动应用等应用模型的综合参考。这本书不一样。它简洁明了,旨在成为一本轻快有趣的书,每一个主题都有实用的实践演练。总体叙述的广度是以某种深度为代价的&…

文件权限

用户类型:管理员:0一般用户:1-65535系统用户1-499普通用户:500权限管理:owner,group属主:属组:其他:权限:read(读),write&…

linux之tar命令使用总结

1、使用原因 刚才在linux平台需要安装Clion的时候,下载得到CLion-2016.3.2.tar.gz 这个gz的压缩文件,所以需要解压到当前文件夹 2、简单解压到当前文件 解压当前文件夹命令 tar -zxvf CLion-2016.3.2.tar.gz 效果如下 3、tar命令介绍 -c: 建立压缩档案 -x:解压 -t:…

jq取第一个子元素为select_【转】jquery如何获取第一个或最后一个子元素?

【转自】https://www.cnblogs.com/MUMO/p/5938483.html通过children方法,children("input:first-child")$(this).children("input:first-child").val();$(this).children("input:last-child").val();通过>选择器,$(&qu…

基于ASP.NET Core SignalR的流式传输

基于ASP.NET Core SignalR的流式传输SignalR概述SignalR是ASP.NET Core下非常流行的实现Web实时功能的库。微软再文档中列出了适合的应用场景:适合 SignalR 的候选项:需要从服务器进行高频率更新的应用。示例包括游戏、社交网络、投票、拍卖、地图和 GPS…

Leetcode: Palindrome Partition I II

题目一, 题目二 思路 1. 第一遍做时就参考别人的, 现在又忘记了 做的时候使用的是二维动态规划, 超时加超内存 2. 只当 string 左部分是回文的时候才有可能减少 cut 3. 一维动规. 令 cuts[i] 表示string[i, string.size()] 所需的切割数, 那么 状态转移方程为 cuts[i] min(cut…

FatMouse

时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1431 解决:641 题目描述:FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food…

linux之安装Clion和运行使用总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程 1、Clion的简单介绍 CLion是以IntelliJ为基础,专为开发C及C++所设计的跨平台IDE,可以在Windows、Linux及MacOS使用,这里我是在ubuntu 16.0.4基础上安装。 2、linux平台…

Tips

1.Unity\Editor\Data\Resources\ScriptTemplates 里的文件是Unity 生成文件的模板. 2.提示文件尾不一致.用VS打开Unity\Editor\Data\Resources\ScriptTemplates里的模板文件.文件->高级保存选项->Windows(CRLF) 3.Scene视图里选择Transform工具,按V可以通过Pivot对齐 4.N…

体验 正式发布 的OSM v1.0.0 版本

2021年10月份发布了OSM 1.0 RC[1],在过去的几个月里,OSM 的贡献者一直在努力为 v1.0.0 版本的发布做准备。2022年2月1日,OSM 团队正式发布 1.0.0 版本[2]。OSM 从最初的发布到现在已经走了很长的路,团队继续专注于社区需要的关键和…

linux c之用命名管道实现进程通信

1、命名管道相关信息介绍 不是很了解命名管道先看这个篇博客 http://blog.csdn.net/u011068702/article/details/55102379 linux c之命名管道简单使用 博客介绍了创建管道的方法,这里还需要介绍 open函数和调用阻塞 FIFO文件也可以使用open调用来打开,mkfifo函数只是创建…

vue表格刷新数据_Vue.js+Layer表格数据绑定与实现更新的实例

一:先使用Vue.js绑定好数据与更新事件使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接取出需要更新的数据选择用户名学号班级操作{{item.UserName}}{{item.Number}}{{item.Class}}删除更新//实例化vue.js(用来给表格提供…

数据流图的画法

数据流图的画法 数据流图也称为数据流程图date flow diagram , DFD,是一种便于用户理解和分析系统数据流程的图形工具,他摆脱了系统和详细内容,精确的在逻辑上描写叙述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组…

linux之自己总结学习linux的资源推荐

1、学习linux前辈的网站 安卓和linux网络编程 http://www.cnblogs.com/hnrainll/ IBM学习linux技术地址: https://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp 2、学习linux的途径,或者说过程 1、APUE再深读 – 尤其是进程,线程,IPC,套接字 2、 多…

01-算法简介

数据结构和算法 基于《算法图解》—Aditya Bhargava和《数据结构》—严蔚敏 ** 算法图解:(基于Python)* 第1章—算法简介 1.1 引言 算法是一组完成任务的指令。 1.2 二分查找(binary_search) 二分查找是一种算法,其输入是一个…

浏览器渲染机制面试_【前端面试必考题】页面渲染机制(一)

页面渲染机制这部分内容会分成两篇来进行讲解,这两篇里我们准备聊一下页面的渲染的过程,包括页面的加载、DOM 树的构建、CSSOM 树的构建、渲染树的构建和最后的渲染过程等。浏览器的渲染机制和网页的优化息息相关,只有知道了页面是怎么渲染出…

OpenJudge/Poj 1226 Substrings

1.链接地址: http://bailian.openjudge.cn/practice/1226/ http://poj.org/problem?id1226 2.题目: 总时间限制:1000ms内存限制:65536kB描述You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, s…

MFC继承表

转载于:https://www.cnblogs.com/Lthis/p/4264967.html

linux之fdisk查看分区和mkfs.ext3删除分区和mount挂载和e2label添加卷标使用总结

一、使用fdisk、mkfs.ext3、和mount、e2lable的原因 有个分区挂载不上,然后需要格式化分区,还需要添加卷标 二、fdisk、mkfs.ext3、mount、e2lable命令介绍 1、fdisk命令介绍 1)、了解分区 分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个…

Task+ConcurrentQueue多线程编程

队列&#xff08;Queue&#xff09;代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时&#xff0c;则使用队列。当您在列表中添加一项&#xff0c;称为入队&#xff0c;当您从列表中移除一项时&#xff0c;称为出队。ConcurrentQueue<T>队列是一个高效的…