表内部结构
思韵闪耀
2012-05-20
0

总结页结构:
1 ,查看方法:
查找所有数据的结构,里面会有文件号,页号等信息
DBCC IND( Business ,Fixed ,- 1)
通过上述得到文件号,页号,执行以下得到数据结构
DBCC TRACEON( 3604 )
DBCC PAGE( Business ,1 , 3394, 1 )
 
2 ,明细解释:
页大小为 KB ,字节,由页面报头,数据行及行偏移矩阵组成。
DBCC PAGE 输出
分为个主要段落
      1  BUFFER: 给定页面的缓冲信息,指一种内存的结构,仅当前页面处于内存中时才有意义。
      2  PAGE HEADER: 该页面上的所有报头字段信息,占据前个字节。
      3  DATA:每条记录的信息,占据字节。
      4  OFFSET TABLE 显示了行偏移矩阵的内容,占据字节。
DATA 结构说明:
通过上述 sql 查看偏移量。
之后是具体的固定长度字符内容
STATUS Bits A     2 
STATUS Bits A     2 
固定字段大小       4 
固定字段数据        固定字段大小 -4
固定字段数量       4 
空位图       
变长字段数量       4 
变长字段偏移量     2 *变长字段数量
变长字段数据
注:个字节用两位存储
16 进制转换成具体数据方法:,若表示的是数字如固定字段长度或字段本身是整型,则要从后向前转换(因数字字段是先存储低字节的),若是
字符,则用每两位的表示转成 ASCII 码即可。
 
3 ,观察数据结构作用:
1 )字段长度改小,观察前后数据变化,发现是一样的,原数据是不会删除的,只是在查询时不显示出来,在插入的时候增加范围限制。
这也解释了为什么表字段改小后,数据量没有什么变化,因为它并不执行删除,以保证高效率。由此了解数据库空间增大后,数据删除并没有相应的空间减少的原因,若想真正删除,重建聚集索引即可。
 
2 )将字段长度用 ALTER方式改大,观察前后数据变化,发现多出了一列,原有的数据列也保留,这也解释了在表设计情况下,进行结构的更改如字段长度变大变小,最后让
SQLSERVER 生成SQL 语句,为什么是建立新表,重建,而不是直接生成 alter 的原因,因为 sqlserver知道直接 alter 的话原数据是不会删除的。
还有一种情况是对列进行位置的调动,用 sqlserver 生成语句,也是建新表操作的,原因是新增加的列总是获得目前最高的 column_id 的下一个值,而列的
顺序也是按 column_id 进行的。
即:用 alter 更改表时,为尽可能避免对每一行数据的改动(要检查每一行,写日志,比较费时耗资源),一般原行的数据是保留的。
字段更小:原数据并不执行删除,保留,只是缩小入口与出口。
字段更大,直接新建一列,而不是进行字段的扩充。
更改字段的顺序,字段的顺序一经建立就是固定的,因为是据 column_id 来排序的,故更改表的顺序要重建表。

 


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

SqlServer 数据库...
--查看数据库大小SELECT DB_NAME(database_...
2024-09-03
docker-compos...
1.Compose介绍 DockerCompose是一个用来定义和...
2024-04-26
MySQL数据库”mysq...
MySQL数据库”mysql SQL Error:1146,SQL...
2023-12-02
php连接mssql的五种...
php连接mssql的五种方法,及示例代码 一、通过mssql_系...
2022-11-29
PostgreSQL和My...
PostgreSQL和MySQL对比 下面将从以下几个方面阐述My...
2022-11-03
mysql 如何跟踪_My...
在项目开发中,难免会遇到在数据库服务器端跟踪sql执行语句的需求,...
2022-09-08

热门资讯

sql中int型与varcha... sql中int转varchar或nvarchar,varchar或nvarchar转int的方法: ...
SQLSERVERAGENT ... 上的 SQLSERVERAGENT 服务启动过,然后又停止了。 (ObjectExplorer) 可...
SQL Server 中4个系... SQL Server 中4个系统数据库,Master、Model、Msdb、Tempdb 系统数据库...
SQL Server中如何设置... 对于已经建好的数据库表,是不能在SQL Server Management中可视化地修改ID为自增长...
该表已为了复制而被发布,所以... 场景:从发布库上将一数据库移到另一服务器,在对表改名时提示该表已为了复制而被发布,所以无法重命名。 ...
SQL Server 2008... SQL Server 2008 R2运行越久,占用内存会越来越大。 第一种: 有了上边的分析结果,解...
SQL Server (MSS... SQL Server (MSSQLSERVER) 启动后 自动生成文件 audittrace2022...
如果使用没有提供选项值的 Sq... 如果使用没有提供选项值的 SqlDependency,必须先调用 SqlDependency.Sta...
传递给数据库 'master'... 传递给数据库 master 中的日志扫描操作的日志扫描号无效 错误:连接数据库的时候提示:SQL S...
数据仓库SSAS+SSIS+... 数据仓库SSAS+SSIS+SSRS SSAS- 1,用ssas生成多维度,然后利用excel的da...