摘要:
查看SQLSERVER内部数据页面的小插件Internals Viewer 感觉internals viewer这个名字起得很好,内部查看。 这个小工具是我之前看园子里的某大侠转载的文章是看到的 文章地址:SQL Server2008存储结构之堆表、行溢出 http://www.cnblogs.co 阅读全文
摘要:
LOB页面 从SQL Server 2005版本以后中,新增加了大值数据类型varchar(max)、nvarchar(max)、varbinary(max)。大值数据类型最多可以存储2^30-1个字节的数据。 从行为上来讲这几个数据类型和之前的数据类型 varchar、nvarchar 和 varbinary 相同。 按照微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为: varchar(max)-------text; nvarchar(max)-----ntext; varbinary(max)----image ... 阅读全文
摘要:
SQLSERVER的非聚集索引结构我们知道SQLSERVER的数据行的存储有两种数据结构:A: 堆 B :B树(binary 二叉树)数据按照这种两种的其中一种来排序和存储,学过数据结构的朋友应该知道二叉树,为什麽用二叉树,因为方便用二分查找法来快速找到数据。如果是堆,那么数据是不按照任何顺序排序的,也没有任何结构,数据页面也不是首尾相连的,不像B树,数据页面使用双向链表首尾相连。堆表只依靠表里的IAM页(索引分配映射页)将堆的页面联系在一起,IAM里记录了页面编号,页面位置除非表里有聚集索引,如果没有的话那么表里的数据的存储就是堆结构那么非聚集索引呢?非聚集索引也是堆结构?其实SQLSERV 阅读全文
摘要:
SQLSERVER里面一些跟硬件相关的错误跟SQLSERVER的一些数据页面保护技术ChecksumSQL Server可以在写入每个页面时,根据页面里的数据算出一个校验值,一同存储到页面里去。当下次读取页面的时候,再根据这次读到的页面数据,算出一个新的校验值。如果写入和读出的数据一模一样,那么两个校验值一定是相等的。而如果两个校验值不相等,意味着上次SQLServer写入的数据和这次读出来的内容一定不同,现在读出来的数据有问题。通过这种方法,SQL Server能够发现数据页面损坏。TornPage残缺页(Torn Page)保护其实是一种对电源故障导致的页损坏进行检测的方法。例如,意外电源 阅读全文