SQL Server 解析行溢出数据的存储
SQL Server2000中最大数据行的大小为8060(我们可以使用的大小为8039),即创建表时所有列的大小总和不能超过8060。在2005中,对于定长的数据,依然保留了这个限制(不过在2005中,我们可以使用的大小为8053,而不是8039)。那么在SQL SERVER2005中对于一行是不
SQL Server2000中最大数据行的大小为8060(我们可以使用的大小为8039),即创建表时所有列的大小总和不能超过8060。在2005中,对于定长的数据,依然保留了这个限制(不过在2005中,我们可以使用的大小为8053,而不是8039)。那么在SQL SERVER2005中对于一行是不是只能存储最多8053字节的数据呢?能不能突破8060的这个限制呢?
在SQL SERVER2000中没有办法,但是在SQL SERVER2005中,是有可能的。在SQL SERVER2005使用变长数据,可以突破8060的限制。因为SQL SERVER2005中对数据每行记录的限制做了一定的调整,对于包含变长类型的表,每一列的长度仍然必须在每行8000以内,但是它们的合并宽度可以超过8060B的限制。
在SQL SERVER2005中,可以把变长列存储在行溢出页面。当一个列需要从一个常规页面转移到一个行溢出页面时,,SQL 2005会保留一个包含行溢出信息的指针作为原始记录的一部分,指针的大小为24B,并且对于每个变长列,无论该列是否存储在记录中,记录还需要2个字节。
【测试】
create table tb(col char(7000),col2 varchar(3000),col3 varchar(3000))
go
insert into tb
values('aaa',replicate('bbb',1000),replicate('ccc',1000))
go
dbcc ind(test,tb,-1) -–得到的页面号为89,80,6321,6315.其中89,6321为IAM页,80与6315为数据页
dbcc traceon(3604)
dbcc page(test,1,89,1)
dbcc page(test,1,80,1)
dbcc page(test,1,6321,1)
dbcc page(test,1,6315,1)
下面分别解析所生成的IAM页与数据页,就可以看到行溢出数据在SQL SERVER2005中是如何来进行存储的。
一、解析IAM页
因为89与6321页面结构是相同的,解析其中的第一即可,以89页为例。
dbcc traceon(3604)
dbcc page(test,1,89,1)
得到的结果:
1、 该页面总共两行
2、 第一行记录了该IAM记录的数据页(后面的注释说明了该数据的作用)
00000000: 00005e00 00000000 00000000 00000000 †--该行的长度
00000010: 00000000 00000000 00000000 00000000 †...............
00000020: 00000000 00000000 00000000 01005000 †--负责的数据页面id
00000030: 00000100 00000000 00000000 00000000 †...............
二、解析数据页
1、 解析80页面数据:
00000000: 30005c1b 61616120 20202020 20202020 –-前四个字节就不解释了
……
00001B50: 20202020 20202020 20202020 0300f802
-–0300总共有三列,f8 null位图,0200变长列有两列
00001B60: 007d9b95 9b020000 65010000 00f65c00
--虽然第二列和第三列的数据存储在另外的数据页,但每个列依然会占用两个字节。
00001B70: 00b80b00 00ab1800 00010000 00020000
00001B80: 65010000 00c04700 00b80b00 00ab1800
00001B90: 00010001 00
020000 65010000 00f65c00 00b80b00 00ab1800 00010000 00
第一个行溢出的指针
020000 65010000 00c04700 00b80b00 00ab1800 00010001 00
第二个行溢出的指针
一个长度为24字节的指针。24字节包含的部分分别如下:
0200
00
65
01000000
f65c0000
B80b0000
ab180000
0100
0000
溢出列类型
在B-树种的层次
暂时不用,无实际意义
Lob数据更新的次数
用于dbcc checktable使用的一个随机值,在lob存在的周期中不会改变
该列的长度。
(计算时为00000bb8)
该部分数据所在的页面号
该部分数据所在的文件号
该部分数据所在页面中的slot号
2、对于行溢出页面,使用的页面类型为LOB。对于该页面的记录方式,以后再进行叙述。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DDREASE是一种用于从文件或块设备(如硬盘、SSD、RAM磁盘、CD、DVD和USB存储设备)恢复数据的工具。它将数据从一个块设备复制到另一个块设备,留下损坏的数据块,只移动好的数据块。ddreasue是一种强大的恢复工具,完全自动化,因为它在恢复操作期间不需要任何干扰。此外,由于有了ddasue地图文件,它可以随时停止和恢复。DDREASE的其他主要功能如下:它不会覆盖恢复的数据,但会在迭代恢复的情况下填补空白。但是,如果指示工具显式执行此操作,则可以将其截断。将数据从多个文件或块恢复到单

0.这篇文章干了啥?提出了DepthFM:一个多功能且快速的最先进的生成式单目深度估计模型。除了传统的深度估计任务外,DepthFM还展示了在深度修复等下游任务中的最先进能力。DepthFM效率高,可以在少数推理步骤内合成深度图。下面一起来阅读一下这项工作~1.论文信息标题:DepthFM:FastMonocularDepthEstimationwithFlowMatching作者:MingGui,JohannesS.Fischer,UlrichPrestel,PingchuanMa,Dmytr

谷歌力推的JAX在最近的基准测试中性能已经超过Pytorch和TensorFlow,7项指标排名第一。而且测试并不是在JAX性能表现最好的TPU上完成的。虽然现在在开发者中,Pytorch依然比Tensorflow更受欢迎。但未来,也许有更多的大模型会基于JAX平台进行训练和运行。模型最近,Keras团队为三个后端(TensorFlow、JAX、PyTorch)与原生PyTorch实现以及搭配TensorFlow的Keras2进行了基准测试。首先,他们为生成式和非生成式人工智能任务选择了一组主流

在iPhone上面临滞后,缓慢的移动数据连接?通常,手机上蜂窝互联网的强度取决于几个因素,例如区域、蜂窝网络类型、漫游类型等。您可以采取一些措施来获得更快、更可靠的蜂窝互联网连接。修复1–强制重启iPhone有时,强制重启设备只会重置许多内容,包括蜂窝网络连接。步骤1–只需按一次音量调高键并松开即可。接下来,按降低音量键并再次释放它。步骤2–该过程的下一部分是按住右侧的按钮。让iPhone完成重启。启用蜂窝数据并检查网络速度。再次检查修复2–更改数据模式虽然5G提供了更好的网络速度,但在信号较弱

特斯拉机器人Optimus最新视频出炉,已经可以在厂子里打工了。正常速度下,它分拣电池(特斯拉的4680电池)是这样的:官方还放出了20倍速下的样子——在小小的“工位”上,拣啊拣啊拣:这次放出的视频亮点之一在于Optimus在厂子里完成这项工作,是完全自主的,全程没有人为的干预。并且在Optimus的视角之下,它还可以把放歪了的电池重新捡起来放置,主打一个自动纠错:对于Optimus的手,英伟达科学家JimFan给出了高度的评价:Optimus的手是全球五指机器人里最灵巧的之一。它的手不仅有触觉

多模态文档理解能力新SOTA!阿里mPLUG团队发布最新开源工作mPLUG-DocOwl1.5,针对高分辨率图片文字识别、通用文档结构理解、指令遵循、外部知识引入四大挑战,提出了一系列解决方案。话不多说,先来看效果。复杂结构的图表一键识别转换为Markdown格式:不同样式的图表都可以:更细节的文字识别和定位也能轻松搞定:还能对文档理解给出详细解释:要知道,“文档理解”目前是大语言模型实现落地的一个重要场景,市面上有很多辅助文档阅读的产品,有的主要通过OCR系统进行文字识别,配合LLM进行文字理

哭死啊,全球狂炼大模型,一互联网的数据不够用,根本不够用。训练模型搞得跟《饥饿游戏》似的,全球AI研究者,都在苦恼怎么才能喂饱这群数据大胃王。尤其在多模态任务中,这一问题尤为突出。一筹莫展之际,来自人大系的初创团队,用自家的新模型,率先在国内把“模型生成数据自己喂自己”变成了现实。而且还是理解侧和生成侧双管齐下,两侧都能生成高质量、多模态的新数据,对模型本身进行数据反哺。模型是啥?中关村论坛上刚刚露面的多模态大模型Awaker1.0。团队是谁?智子引擎。由人大高瓴人工智能学院博士生高一钊创立,高

FP8和更低的浮点数量化精度,不再是H100的“专利”了!老黄想让大家用INT8/INT4,微软DeepSpeed团队在没有英伟达官方支持的条件下,硬生生在A100上跑起FP6。测试结果表明,新方法TC-FPx在A100上的FP6量化,速度接近甚至偶尔超过INT4,而且拥有比后者更高的精度。在此基础之上,还有端到端的大模型支持,目前已经开源并集成到了DeepSpeed等深度学习推理框架中。这一成果对大模型的加速效果也是立竿见影——在这种框架下用单卡跑Llama,吞吐量比双卡还要高2.65倍。一名
