SqlServer找页链

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

  

时间: 2024-10-11 18:11:29

SqlServer找页链的相关文章

(4.19)深入理解SQLSERVER的日志链

您真的理解了SQLSERVER的日志链了吗? 转自:https://www.cnblogs.com/lyhabc/p/3460272.html 先感谢宋沄剑给本人指点迷津,还有郭忠辉童鞋今天在QQ群里抛出的问题 这个问题跟宋沄剑讨论了三天,再次感谢宋沄剑 一直以来,SQLSERVER提供了一个非常好的管理工具:SSMS 又因为这个管理工具太好了,所有操作的简单化,以至于使我们中毒太深, 对于SQLSERVER内部的一些概念搞得不清不楚 比如这些概念:日志备份链,备份日志链,日志链,备份链,备份集

[日常摸鱼]luogu3398仓鼠找sugar-树链剖分

https://www.luogu.org/problemnew/show/P3398 题意:一颗$n$个点的树,$q$次询问两条链$(a,b),(c,d)$是否有交 树剖裸题orz 一开始的想法是求出$lca_1=lca(a,b),lca_2=lca(c,d)$,对于深度大的那个$lca$用dfs序判断是否在另一条链上,然后到现在都不知道为什么一直wa- 改成判断深度大的那个$lca$是否和另外两个点的其中某个点有父子关系好像就行了- #include<cstdio> #include<

sqlserver 找出字符第N次出现的位置

[1编写函数]CREATE FUNCTION IndexOf(@str VARCHAR(500),@value VARCHAR(50),@posIndex INT)RETURNS int AS BEGIN DECLARE @pos int=0 --记录位置 DECLARE @i INT =0 --记录查找的次数 WHILE(@i<@posindex) BEGIN SET @[email protected]+1 set @pos=CHARINDEX(@value,@str,@pos+1) IF(

解剖SQLSERVER 第一篇 数据库恢复软件商的黑幕

解剖SQLSERVER 第一篇  数据库恢复软件商的黑幕 这一系列,我们一起来解剖SQLSERVER 在系列的第一篇文章里本人可能会得罪某些人,但是作为一位SQLSERVER MVP,在我的MVP任期内希望可以对大家作出一些贡献 在第一篇里面涉及到某些内容可能不会以详细的方式给出截图并且和大家讲解,毕竟第一篇的篇幅比较长,希望大家见谅.. 在第一篇文章开始之前,先说三个题外话 第一个题外话  更新丢失 首先要做的事情是,跟大家道歉 在之前<SQLSERVER走起>的微信公众帐号里推送了一篇文章

SQLSERVER聚集索引与非聚集索引的再次研究(下)

原文:SQLSERVER聚集索引与非聚集索引的再次研究(下) SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 上篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(上) 下篇主要说非聚集索引 先上非聚集索引的结构图 先创建Department8表 1 --非聚集索引 2 USE [pratice] 3 GO 4 5 CREATE TAB

SEO分享:我为什么会有这么多的优质外链资源?

前面小浪发了一篇文章" [完整版]我是怎样3个月把800指数的词做上首页的.",非常多人看了之后都表示非常佩服.顽强的运行力.确实SEO就是要顽强的运行力,也有人说吹牛吧,一天500条外链你发的了那么多?答:呵呵.. .也有非常多人问我要外链资源,本着授人以鱼不如授人以渔的想法,我不告诉你我的外链资源,我告诉你我找外链资源的方法,毕竟行业不同,我的外链资源也不一定适合你,对吧? 每次我在群里说某某网收录还不错,某某站点收录好快的时候,就有非常多人问我要外链资源,小浪自己也不知道分享了多

SEO分享:为什么我的资源外链这么多的高品质?

在小浪前制成的制品" [完整版]我怎么3的月800单词索引厨师主页!".之后,很多人都表示了极大的钦佩观看.顽强的运行力,真SEO它是运行顽强的力量.也有人说是吹牛吧,一天500外链的文章,你做了这么多?答案:呵呵. .. ,本着授人以鱼不如授人以渔的想法,我不告诉你我的外链资源.我告诉你我找外链资源的方法,毕竟行业不同,我的外链资源也不一定适合你.对吧? 每次我在群里说某某网收录还不错.某某站点收录好快的时候,就有非常多人问我要外链资源.小浪自己也不知道分享了多少次自己的外链资源,外

友链依旧重要:移动互联网背后的SEO优化技巧

移动互联网发展这么快,将来还需要网站吗成为很多站长的疑问,那做SEO优化的站长不是将走向失业,实际上,在2010年中国移动互联网开始至今,移动化SEO不仅没有让这个市场失去活力,反而在各种场景下依旧有站长通过移动化SEO优化获得不错的收入. 以前我们常说SEO优化主要为站内优化和站外优化,站内主要做各种设置如301.404.内链.内容与用户体验,站外优化则是友情链接,其中外链成为最重要的工作之一,随着技术的进步以及搜索引擎针对页面的评分变化,友链开始发生极大的改变,但是这种兼具着SEO优化以及品

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com/ 说实话,第一眼看到还是感到很高大上的,毕竟ORACLE.MYSQL.SQLSERVER都没有推出数据库试用的云平台 其实其他数据库也应该学习一下达梦,做一个平台让大家有机会学习自家的数据库知识,虽然现在这个时代下载安装包比较容易,不过提供一个平台也是有好处的 达梦数据库文档下载:http://f