데이터 베이스 MySQL 튜토리얼 SQL Server 解析行溢出数据的存储

SQL Server 解析行溢出数据的存储

Jun 07, 2016 pm 04:22 PM
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。对于该页面的记录方式,以后再进行叙述。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

오픈 소스! ZoeDepth를 넘어! DepthFM: 빠르고 정확한 단안 깊이 추정! 오픈 소스! ZoeDepth를 넘어! DepthFM: 빠르고 정확한 단안 깊이 추정! Apr 03, 2024 pm 12:04 PM

오픈 소스! ZoeDepth를 넘어! DepthFM: 빠르고 정확한 단안 깊이 추정!

ddrescue를 사용하여 Linux에서 데이터 복구 ddrescue를 사용하여 Linux에서 데이터 복구 Mar 20, 2024 pm 01:37 PM

ddrescue를 사용하여 Linux에서 데이터 복구

초지능의 생명력이 깨어난다! 하지만 자동 업데이트 AI가 등장하면서 엄마들은 더 이상 데이터 병목 현상을 걱정할 필요가 없습니다. 초지능의 생명력이 깨어난다! 하지만 자동 업데이트 AI가 등장하면서 엄마들은 더 이상 데이터 병목 현상을 걱정할 필요가 없습니다. Apr 29, 2024 pm 06:55 PM

초지능의 생명력이 깨어난다! 하지만 자동 업데이트 AI가 등장하면서 엄마들은 더 이상 데이터 병목 현상을 걱정할 필요가 없습니다.

Google은 열광하고 있습니다. JAX 성능이 Pytorch와 TensorFlow를 능가합니다! GPU 추론 훈련을 위한 가장 빠른 선택이 될 수 있습니다. Google은 열광하고 있습니다. JAX 성능이 Pytorch와 TensorFlow를 능가합니다! GPU 추론 훈련을 위한 가장 빠른 선택이 될 수 있습니다. Apr 01, 2024 pm 07:46 PM

Google은 열광하고 있습니다. JAX 성능이 Pytorch와 TensorFlow를 능가합니다! GPU 추론 훈련을 위한 가장 빠른 선택이 될 수 있습니다.

iPhone의 느린 셀룰러 데이터 인터넷 속도: 수정 사항 iPhone의 느린 셀룰러 데이터 인터넷 속도: 수정 사항 May 03, 2024 pm 09:01 PM

iPhone의 느린 셀룰러 데이터 인터넷 속도: 수정 사항

미 공군이 주목할만한 최초의 AI 전투기를 선보였습니다! 전 과정에 걸쳐 장관이 직접 간섭 없이 테스트를 진행했고, 10만 줄의 코드를 21차례 테스트했다. 미 공군이 주목할만한 최초의 AI 전투기를 선보였습니다! 전 과정에 걸쳐 장관이 직접 간섭 없이 테스트를 진행했고, 10만 줄의 코드를 21차례 테스트했다. May 07, 2024 pm 05:00 PM

미 공군이 주목할만한 최초의 AI 전투기를 선보였습니다! 전 과정에 걸쳐 장관이 직접 간섭 없이 테스트를 진행했고, 10만 줄의 코드를 21차례 테스트했다.

대형 모델을 이해하는 Alibaba 7B 다중 모드 문서, 새로운 SOTA 획득 대형 모델을 이해하는 Alibaba 7B 다중 모드 문서, 새로운 SOTA 획득 Apr 02, 2024 am 11:31 AM

대형 모델을 이해하는 Alibaba 7B 다중 모드 문서, 새로운 SOTA 획득

공장에서 일하는 테슬라 로봇, 머스크 : 올해 손의 자유도가 22도에 달할 것! 공장에서 일하는 테슬라 로봇, 머스크 : 올해 손의 자유도가 22도에 달할 것! May 06, 2024 pm 04:13 PM

공장에서 일하는 테슬라 로봇, 머스크 : 올해 손의 자유도가 22도에 달할 것!

See all articles