sql server 索引阐述系列八 统计信息

by admin on 2019年9月12日

一.概述  

  sql
server在快速查询值时只有索引还不够,还需要知道操作要处理的数据量有多少,从而估算出复杂度,选择一个代价小的执行计划,这样sql
server就知道了数据的分布情况。索引的统计值信息,还内置策略用来在没有索引的属性列上创建统计值。在有索引和没有索引的属性列上统计值信息会被自动维护。大部分场景下不需要手动去维护统计信息。
  
  作用是 sqlserver
查询优化器使用统计信息来创建可提高查询性能的查询计划。
对于大多数查询,查询优化器已为高质量查询计划生成必要的统计信息。每个索引都会自动建立统计信息,
统计信息的准确性直接影响指令的速度,执行计划的选择是依据统计信息。

  1.1 属性列统计值
  默认情况下,每当在一个查询的where子句中使用非索引属性列时,sqlserver会自动地创建统计值,统计名称以_WA_Sys开头。

-- 查看表中非索引的统计信息
 sp_helpstats PUB_Search_Log

   如下所示:

 图片 1图片 2

  1.2 自动更新统计信息的阀值

  在自动更新统计信息选项 AUTO_UPDATE_STATISTICS 为 ON
时,查询优化器将确定统计信息何时可能过期。查询优化器通过计算自最后统计信息更新后数据修改的次数并且将这一修改次数与某一阈值进行比较,确定统计信息何时可能过期。
  (1)如果在评估时间统计信息时表基数为 500 或更低,则每达到 500
次修改时更新一次。
  (2)如果在评估时间统计信息时表基数大于 500,则改变每达到 500 +
20%的行数更新一次(大表特别要注意更新时间)

一. 索引概述

  关于介绍索引,有一种“文章太守,挥毫万字,一饮千钟”的豪迈感觉,因为索引需要讲的知识点太多。在每个关系型数据库里都会作为重点介绍,因为索引关系着数据库的整体性能,
它在数据库性能优化里占有重要地位。由于索引关联面广,我想通过一系列来把索引尽量阐述清楚,大概包括索引存储单元、堆介绍、聚集索引与非聚集索引介绍、索引参数(填充因子,包含列,约束等)、索引的使用,索引维护管理,索引统计信息、索引访问方法、索引存储与文件组、索引视图、索引数据修改内部机制、索引的分析调优排查等。尽量争取把索引的知识点讲到讲明白,借鉴一些资料和经验,整理输出理论,实践列出案例。

  索引可以提供了对数据的快速访问。就像是一本书的目录,一个好的目录可以极大的减少查询时间,索引使数据以一种特定的方式组织起来,使查询操作具有最佳性能。当表变得越来越大,索引就变得十分明显,可以利用索引快速满足where条件的数据行。某些情况还可以利用索引帮助对数据进行排序,组合,分组,筛选。

  在sqlserver里索引类型包括:堆,聚集索引,非聚集索引,列存储索引,特殊索引(如全文索引),其它索引如分区索引,过滤索引等。

  1.
 堆:堆不是索引,但讲索引时会讲到堆,两者有紧密联系,堆结构在数据插入,没有更改时是有存储顺序的,但一改动如修改删除,结构就会发生变化。没有聚集索引的表称为堆表。

  2.
聚集索引:对于聚集索引,数据实际上是按顺序存储的是B-Tree结构,B树是代表平衡的树,在寻找记录时都只需等量的资源,获取速度总是一致的,因为根索引到叶索引都具有相同的深度,
就像一本书把所有目录编排一样,一旦找到所要的数据,就完成了这次搜索,当查询使用到了索引时,sqlserver优化器可以快速定位,最少I/O次数获取所需的数据。

  3. 非聚集索引:非聚集索引也是B-Tree结构,在sql server 08可中多达999个。它是完全独立于数据本身结构的,也就是说它存储的是键值,有指针指向数据本身的位置。

  4. 列存储索引:它是sql server 2012开始引入的一种索引类型,,主要用于对大数据量的查询操作,与传统的索引行存储不同,通过列存储的压缩方式,在某些场景大大提高索引效率。

一.概述、

  ”流光容易把人抛,红了樱桃,绿了芭蕉“
转眼又年中了,感叹生命的有限,知识的无限。在后续讨论索引之前,先来了解下索引和表数据的内部结构,这一节将介绍页的存储,页分配单元类型,区的存储,
最后简要介绍下系统页存储类型,页中的数据结构。

1.1  页存储

  页是 sql server存储数据的基本单位,大小为8kb,
它存储的类型包括表,索引数据,分配位图,可用空间信息等,页也是可以读写的最小I/0单位。也就是如只需访问一行数据,也会把整个页加载到内存中。一页大小是8192个字节,由三块组成分为页头,数据行 ,
行偏移也叫页尾行指针。

  页头:有96个字节,包含的信息如PageID(文件号及页面编号),NextPage下一个页面的文件号及页面编号等。

  数据行:单个数据行最大为8060字节。

  末尾行偏移:
36字节的数组,数组中的每一个值指向页中数据。当插入一行数据时,偏移量从右下角开始存储,插入第二行时偏移量为2存放于1的左边,如下图所示:

图片 3

  一个页存储有三种分配单元类型: in_row_data
(行内数据), row_overflow_data( 行溢出数据), lob_data
LOB(大型数据)。

分配单元类型 描述
in_row_data 存放固定长度的列,以及可变长度的列。一行字节<= 8060字节的限制
row_overflow_data 存放<=8000字节的varchar,nvarchar, varbinary类型数据。一行字节>= 8060
lob_data 存放大型对象数据类型值 >=8000节字的varchar(max), nvarchar(max), varbinary(max), 以及xml或clr udt

1.2 区

   区是由8个物理上连续的页组成的单元,用来有效管理页,如是区内的8个页属于同一个表,则这种区叫统一区,如果区内8个页分别属于至少两个不同的表,则这种区叫混合区。当表或索引需要更多空间时,sqlserver会为对象分配一个新区,但对象不足64kb,通常只分配一个页,当drop或truncate表时将释放整个区。 

1.3 存储的关系

   每个数据表对应有一个objectID标识符, 
表中有多个索引为 sys.indexes,   表和索引存储在多个分区中
sys.partitions,但至少有一个分区。每个分区下面有8个物理连续页,
页中使用最频繁的文件类型是Data数据。

  下图展示表和索引存储结构以及对应的元数据查询。 分配单元可通过SELECT
* FROM sys.system_internals_allocation_units视图查看

图片 4

-- 创建聚集索引
create table [dbo].[pub_stocktest] add  constraint [pk_pub_stocktest] primary key clustered 
(
[sid] asc
)with (pad_index = off, statistics_norecompute = off, sort_in_tempdb = off, ignore_dup_key = off, 
online = off, allow_row_locks = on, allow_page_locks = on) on [primary]

-- 创建非聚集索引
 create nonclustered index [ix_model] on [dbo].[pub_stocktest]
(
    [model] asc
)
include (     [name]) with (pad_index = off, statistics_norecompute = off, sort_in_tempdb = off, drop_existing = off, 
online = off, allow_row_locks = on, allow_page_locks = on, FILLFACTOR = 85) on [primary]

一.概述

    索引填充因子作用:提供填充因子选项是为了优化索引数据存储和性能。 当创建或重新生成索引时,填充因子的值可确定每个叶级页上要填充数据的空间百分比,以便在每一页上保留一些剩余存储空间作为以后扩展索引的可用空间,例如:指定填充因子的值为
80 表示每个叶级页上将有 20%
的空间保留为空,以便随着向基础表中添加数据而为扩展索引提供空间。

  填充因子的值是 1 到 100
之间的百分比,服务器范围的默认值为
0,这表示将完全填充叶级页。

 1.1
页拆分现象

   根据数据的查询和修改的比例,正确选择填充因子值,可提供足够的空间,以便随着向基础表中添加数据而扩展索引,从而降低页拆分的可能性。如果向已满的索引页添加新行(新行位置根据键排序规则,可以是页中任意行位置), 数据库引擎将把大约一半的行移到新页中,以便为该新行腾出空间。 这种重组称为页拆分。页拆分可为新记录腾出空间,但是执行页拆分可能需要花费一定的时间,此操作会消耗大量资源。 此外,它还可能造成碎片,从而导致 I/O
操作增加。 如果经常发生页拆分(可能过sys.dm_db_index_physical_stats
来查看页拆分情况),可通过使用新的或现有的填充因子值来重新生成索引,从而重新分发数据。

  填充值设置过低: 优点是
插入或修改时降低页的拆分次数。缺点是
会使索引需要更多的存储空间,并且会降低读取性能。

  填充值设置过高: 优点是
如果每一个索引页数据都全部填满,此时select效率最高。缺点是
插入或修改时需要移动后面所有页,效率低。

二. 统计信息分析

--查询统计信息
DBCC SHOW_STATISTICS(tablename,'indexname')

  下面是一个复杂的统计信息,上一次更新统计信息时间是2018年5月8日,距离现在有二个多月没更新了,也就是说更新条件没有达到(改变达到500次

  • 20%的行数变动)。

  图片 5

  图片 6

  2.1 统计信息三部分:头信息,字段选择性,直方图。
   (1) 头信息

    name:统计信息名称,也是索引的名字。
    updated:上一次统计信息更新时间(重要)。
    rows:上一次统计表中的行数,反映了表里的数据量。
    rows Sampled:
用于统计信息计算的抽样总行数。当表格数据比较大,为了降低消耗,只会取一小部分数据做抽样。 
rows sampled<rows时候统计信息可能不是最精确的。
    steps:把数据分成几组。最多200个组,每个直方图梯级都包含一个列值范围,后跟上限列值。
    density:索引第一列前缀的选择性。查询优化器不使用此 Density,
值此值的目的是为了与 SQL Server
2008 之前的版本实现向后兼容。
    average key length:索引列平均字节数。
    string index: YES 代表字符串索引。

  (2)数据字段选择性

    all density:
反映了索引列的选择度。它反映了数据集里重复的数据量多少,如果数据很少有重复,那么它选择性就比较高。 密度为
1/非重复值。值越小选择性就越高。如果值小于了0.1,那索引的选择性就非常高了(这一点通过查看自增ID主键索引列,非常明显小于了0.1的值)。
    average length: 索引列平均字节长度 例如model
列值平均长度是25个字节。
    columns:索引列名称

  (3)直方图(对应steps 组)

      直方图度量数据集中每个非重复值的出现频率。
查询优化器根据统计信息对象第一个键列中的列值来计算直方图,它选择列值的方法是以统计方式对行进行抽样或对表或视图中的所有行执行完全扫描。
    range_hi_key: 列值也称为键值。直方图里每一组(step)数据最大值
。上图值是model字符串类型
    range_rows:每组数据区间估算数目。
    eq_rows:表中值与直方图每组数据库上限相等的数目
    distinct_range_rows:每组中非重复数目,
如果没有重复则range_rows等于distinct_range_rows值。
    avg_range_rows:每组数据区间重复值平均数目, (range_rows)

 

 三. 人工维护的几种情况

1.查询执行时间很长
  如果查询响应时间很长或不可预知,则在执行其他故障排除步骤前,确保查询具有最新的统计信息。
2.在升序或降序键列上发生插入操作。
  与查询优化器执行的统计信息更新相比,升序或降序键列(例如 IDENTITY
或实时时间戳列)上的统计信息可能要求更频繁地更新。插入操作将新值追加到升序或降序键列上
3.在维护操作后。
  考虑在执行维护过程(例如截断表或对很大百分比的行执行大容量插入)后更新统计信息。
这可以避免在将来查询等待自动统计信息更新时在查询处理中出现延迟。

-- 更新统计信息
UPDATE STATISTICS tablename(indexname)

  更新统计信息可确保查询使用最新的统计信息进行编译。
不过,更新统计信息会导致查询重新编译。
我们建议不要太频繁地更新统计信息,因为需要在改进查询计划和重新编译查询所用时间之间权衡性能。

二. 索引元数据   

  元数据是对应每个功能的一些描述与特性,这里的元数据是索引相关描述,后面查询分析还会使用到这些元数据,具体了解使用可以先查看msdn,
索引常用相关元数据如下:

  sys.indexes
 它提供索引名,索引类型(堆或索引),聚集与非聚集类型,索引填充因子,索引过滤等信息。

  sys.index_columns 它提供了索引包含的列信息,可通过与sys.indexes关联获得索引列定义。

SELECT i.name AS index_name  
    ,COL_NAME(ic.object_id,ic.column_id) AS column_name  
    ,ic.index_column_id  
    ,ic.key_ordinal  
,ic.is_included_column  
FROM sys.indexes AS i  
INNER JOIN sys.index_columns AS ic   
    ON i.object_id = ic.object_id AND i.index_id = ic.index_id  
WHERE i.object_id = OBJECT_ID('表名xx');      

  如下图所示:图片 7

 

 sys.columns_store_dictionaries和sys.columns_store_segments:用于描述列存储信息。

 sys.xml_indexes:与sys.indexes类似
主要是用于xml索引。

 sys.spatial_indexes:也与sys.indexes类似
主要是用于spatial索引。

 sys.dm_db_index_physical_stats:它描述了索引的大小和碎片信息,代替了DBCC
SHOWCONTIG。有三种获取统计信息扫描碎片模式:LIMITED,SAMPLED,DETAILED
这三种顺序描述需要的时间是越来越多。

 sys.dm_db_index_operational_stats:用来跟踪索引
I/O、 锁定、
闩锁、访问方法。索引访问方式(叶级插入累计数,叶级删除累计数,叶级更新累积数)。
索引或堆上闩锁争用次数时间,lock锁定数量时间,以及索引载入内存 I/O
数。

 sys.objects:用户自定义对象(如:表,视图..)的标识号,可以通过索引的objectid找到相关表名或视图名。

 sys.PARTITIONS:描述索引在每个分区中各对应一行,表和索引都至少包含一个分区(在表内部结构里,顶层是表,中间层是分区,分区下面再是数据和索引)。

 sys.dm_db_index_usage_stats:描述不同类型索引操作的计数(如:全表描述次数、走索引次数,书签查找次数等)以及对应各操作时间。每次查询索引,所进行的每个单独的搜索、扫描、查找或更新都被计为对该索引的一次使用,并使此视图中的相应计数器递增。

 sys.dm_db_missing_index_groups:索引组中包含的缺失索引信息。

 sys.dm_db_missing_index_details:描述有关缺失索引的详细信息。

 sys.dm_db_missing_index_group_stats:描述缺失索引组中包含的缺失索引。

  如下图是三个元数据组合,分析出缺失的索引

SELECT  DB_NAME(database_id) AS database_name ,
        OBJECT_NAME(object_id, database_id) AS table_name ,
        mid.equality_columns ,
        mid.inequality_columns ,
        mid.included_columns ,
        ( migs.user_seeks + migs.user_scans ) * migs.avg_user_impact AS Impact ,
        migs.avg_total_user_cost * ( migs.avg_user_impact / 100.0 )
        * ( migs.user_seeks + migs.user_scans ) AS Score ,
        migs.user_seeks ,
        migs.user_scans
FROM    sys.dm_db_missing_index_details mid
        INNER JOIN sys.dm_db_missing_index_groups mig ON mid.index_handle = mig.index_handle
        INNER JOIN sys.dm_db_missing_index_group_stats migs ON mig.index_group_handle = migs.group_handle
ORDER BY migs.avg_total_user_cost * ( migs.avg_user_impact / 100.0 )
        * ( migs.user_seeks + migs.user_scans ) DESC

 sys.dm_db_missing_index_columns:缺少索引列的有关的信息。

二. 索引与表存储关系演示

  2.1
首先建一个RowText表

CREATE TABLE [dbo].[RowText](
    [a] [varchar](3000) NULL
) ON [PRIMARY]

  2.2 根据表名,查到表的标识符objectID:  5575058。
这里显示了表的相关信息如创建时间,修改时间。

select * from sys.objects where name='RowText'

  图片 8

      2.3
 根据标识符objectID,找到表上的多个分区,这里只有一个区。找到标识hobt_id(是该区里堆或B树结构的标识):
72057594038976512

select * from sys.partitions where object_id=5575058

   
 图片 9

  2.4  再根据hobt_id: 72057594038976512,找到页分配的单元,
这里现只显示了in_row_data  行内数据,信息包括了行内数据使用的总页数,已使用页数,数据页数

select * from sys.allocation_units where container_id=72057594038976512

 
 图片 10

1.1 Filefactor参数

二. 碎片与填充因子案例

   下面分析在生产环境下,对长时间一个表的ix_1索引进行分析。

-- 有一个PUB_Search_ResultVersions2表长期有增删改操作, 在很长一段时间运行后,查看碎片如下
dbcc SHOWCONTIG (PUB_Search_ResultVersions2,'ix_1')

  图片 11

    通过上图可以了解到平均页密度是29.74%,也就是内部碎片太多,现三个页的数据存储量才是正常一个页的存储量。扫描的页数是703页,涉及到了192个区。下面重新维护索引

--重建索引
ALTER INDEX ix_1 ON dbo.PUB_Search_ResultVersions2 REBUILD

  图片 12

     通过上图可以看到,扫描页数只有了248页(原来是703页)
用了36区(原来是192个区),现等于一页的实际数据是之前三页的总量,
查询将会减少了大量的I/O扫描。

  如果频繁的增删改,最好设置填充因子,默认是0,也就是100%,
如果有新索引键排序后,挤入到一个已填满8060字节的页中时,就会发生页拆分,产生碎片,这里我使用图形界面来设置填充因子为85%(最好通过t-sql来设置,做运维自动维护),再重建下索引使设置生效。

  图片 13

  下图可以看出平均页密度是85%,填充因子设置生效。可以在通过sys.dm_db_index_physical_stats重新查看该索引页使用数量。

图片 14

  三. 页分配单元演示

  3.1 上面讲到页分配单元有三种类型,通过下面的脚本可以来查看分析。

SELECT CONVERT(VARCHAR(10),OBJECT_NAME(i.object_id)) AS table_name,
     i.Name AS index_name,i.index_id,i.type_desc AS index_type,
     partition_id,partition_number,p.rows,allocation_unit_id,
     a.type_desc AS page_type_desc,
     a.total_pages,a.used_pages,a.data_pages
    FROM sys.indexes i JOIN sys.partitions p 
ON i.object_id=p.object_id and i.index_id=p.index_id
JOIN sys.allocation_units a ON p.partition_id=a.container_id
WHERE i.object_id=object_id('RowText')

  3.2 查看页存储的行内数据

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RowText]') AND type in (N'U'))
DROP TABLE [dbo].[RowText]

go
CREATE TABLE [dbo].[RowText](
    [a] [varchar](3000) NULL
) ON [PRIMARY]

insert into RowText
select REPLICATE('a',3000)
insert into RowText
select REPLICATE('a',3000)
insert into RowText
select REPLICATE('a',3000)

  当前一行数据3000字节,小于一行8000字节,所以存放为IN_ROW_DATA类型,新增三行共9000字节,大于了一页8060字节,所以产生了data_pages:2页。通过3.1脚本查看

 图片 15

  3.2 查看页存储的行溢出数据

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RowText]') AND type in (N'U'))
DROP TABLE [dbo].[RowText]
go
create TABLE [dbo].[RowText](
    [a] [varchar](3000) NULL,
    [b] [varchar](6000) NULL
) ON [PRIMARY]

insert into RowText
select REPLICATE('a',3000),REPLICATE('b',6000)

  当前一行数据为9000字节,大于一行8000字节,所以分配了ROW_OVERFLOW_DATA类型,通过3.1脚本查看

图片 16

  3.3  查看页存储的LOB大型数据

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RowText]') AND type in (N'U'))
DROP TABLE [dbo].[RowText]
go
CREATE TABLE [dbo].[RowText](
    [a] [varchar](3000) NULL,
    [b] [varchar](6000) NULL,
    [c] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

insert into RowText
select REPLICATE('a',3000),REPLICATE('b',6000),REPLICATE('c',12000)

  当前表包含了text类型,所以分配了LOB_DATA大型数据,通过3.1脚本查看

  图片 17

     
 最后简单总结下:在设计表字段时,一定要与业务相符合,尽量避免建大型字段,产生行溢出和LOB大型数据,从而造成页拆分,查询将需要跨页。原理是当一行超过8060字节时,这类型的值将被移动到一个称为行溢出分配单元页中,在原始页上保留一个24字节指针,指向行外数据,这样就完成了行跨页。
存放大型对象数据类型值时,在原始页上保留一个16字节指针,指向该大型对象值。

  使用Filefactor可以对索引的每个叶子分页存储保留一些空间。对于聚集索引,叶级别包含了数据,使用Filefactor来控制表的保留空间,通过预留的空间,避免了新的数据按顺序插入时,需腾出空位而进行分页分隔。
  Filefactor设置生效注意,只有在创建索引时才会根据已经存在的数据决定预留的空间大小,如里需要可以alter
index重建索引并重置原来指定的Filefactor值。
  在创建索引时,如果不指定Filefactor,就采用默认值0
也就是填充满,可通过sp_configure
来配置全局实例。Filefactor也只就用于叶子级分页上。如果要在中间层控制索引分页,可以通过指定pad_index选项来实现.该选择会通知到索引上所有层次使用相同的Filefactor。Pad_index也只有索引在新建或重建时有用。

 四  页单元文件类型

  我们知道页文件主要是用来存储表和索引的数据,其实还包括其它的存储,
在sqlserver里页文件存储的类型也分9种,如下图所示

页类型

内容

Global Allocation Map (GAM)

它用来标识相应的区是否已经被分区,能标识64000个区,也就是4G空间,如超过4G则分配另一个GAM页 bit=0 表示当前区已被数据使用

.Shared Global Allocation Map(SGAM)

表示该区是否是混合区 bit=1 是混合区且至少有一个数据页被分配

Page Free Space

存储该文件里所有页分配情况,和可用空间信息

Index Allocation Map

表或索引使用该区的信息

Bulk Changed Map

最后一条 backup log 语句之后大容量操作所修改区的信息

Differential Changed Map

最后一条 backup database 语句之更改区的信息

Data

用来存储数据

Row Overflow Page

行溢出的数据

LOB

存放大型对象数据:text,nvarchar(max),varchar(max)…

1.2 Drop_existing 参数

 五.数据页的结构

  在sql
server里有这么多页文件类型,哪个页里是怎么存储的,存储了什么内容呢?下面来查看一个数据页存储的信息

  下面通过partition_id的标识符:72057594038976512
找到first_page 字段
第一页

select * from sys.system_internals_allocation_units where container_id=72057594038976512

  图片 18

   由于存储关系,页码是以字节16进制显示0x720000000100,这里需要倒序后就是0x010000000072,

  0x表示:文件组号

  0072从16进制转成10进制为第114页(后四字节代表页的编号)

  通过Dbcc page可以查看页的具体内容,使用之前dbcc page, 先打开dbcc
traceon (3604) 告诉sql server将结果返回给客户端 ,dbcc Page 四个参数
如下:

dbid | dbname 该页的数据库ID或数据
Filenum 页面文件号
Pagenum 页面号
Printopt =1 对每条记录打印缓冲报头,页面报头,输出行偏移表

  具体使用如下:

  dbcc traceon (3604)

  dbcc page(‘test’,1,114,1)

  数据页结构输出分为四个主要阶段:buffer,  page
header, data,  offset table

  Buffer: 用来标识该数据页在内存中的位置。

  page header: 页头信息

  data:存储的数据

  offset table: 偏移量

  感兴趣的朋友,可以再深入研究。这里粗略讲下。

PAGE: (1:114)


BUFFER:


BUF @0x0000000081FE4640

bpage = 0x0000000081B66000           bhash = 0x0000000000000000           bpageno = (1:114)
bdbid = 5                            breferences = 0                      bcputicks = 222
bsampleCount = 1                     bUse1 = 5256                         bstat = 0xc00009
blog = 0x32159                       bnext = 0x0000000000000000           

PAGE HEADER:


Page @0x0000000081B66000

m_pageId = (1:114)                   m_headerVersion = 1                  m_type = 1
m_typeFlagBits = 0x4                 m_level = 0                          m_flagBits = 0x8200
m_objId (AllocUnitId.idObj) = 35     m_indexId (AllocUnitId.idInd) = 256  
Metadata: AllocUnitId = 72057594040221696                                 
Metadata: PartitionId = 72057594038976512                                 Metadata: IndexId = 0
Metadata: ObjectId = 5575058         m_prevPage = (0:0)                   m_nextPage = (0:0)
pminlen = 4                          m_slotCnt = 2                        m_freeCnt = 2070
m_freeData = 6118                    m_reservedCnt = 0                    m_lsn = (27:202:2)
m_xactReserved = 0                   m_xdesId = (0:0)                     m_ghostRecCnt = 0
m_tornBits = 2253409                 

Allocation Status

GAM (1:2) = ALLOCATED                SGAM (1:3) = ALLOCATED               
PFS (1:1) = 0x62 MIXED_EXT ALLOCATED  80_PCT_FULL                         DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED            

DATA:


Slot 0, Offset 0x60, Length 3011, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
Record Size = 3011                   
Memory Dump @0x000000001116A060

0000000000000000:   30000400 01000001 00c30b61 61616161 ?0..........aaaaa 
0000000000000010:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000020:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000030:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000040:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000050:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000060:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000070:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000080:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000090:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000100:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000110:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000120:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000130:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000140:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000150:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000160:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000170:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000180:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000190:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000200:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000210:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000220:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000230:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000240:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000250:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000260:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000270:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000280:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000290:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000300:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000310:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000320:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000330:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000340:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000350:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000360:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000370:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000380:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000390:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000400:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000410:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000420:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000430:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000440:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000450:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000460:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000470:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000480:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000490:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000500:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000510:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000520:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000530:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000540:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000550:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000560:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000570:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000580:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000590:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000600:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000610:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000620:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000630:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000640:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000650:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000660:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000670:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000680:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000690:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000700:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000710:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000720:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000730:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000740:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000750:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000760:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000770:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000780:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000790:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000800:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000810:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000820:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000830:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000840:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000850:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000860:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000870:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000880:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000890:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000900:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000910:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000920:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000930:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000940:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000950:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000960:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000970:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000980:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000990:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A00:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A10:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A20:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A30:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A40:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A50:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A60:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A70:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A80:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A90:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AA0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AB0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AC0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AD0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AE0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AF0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B00:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B10:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B20:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B30:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B40:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B50:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B60:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B70:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B80:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B90:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000BA0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000BB0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000BC0:   616161???????????????????????????????aaa              

Slot 1, Offset 0xc23, Length 3011, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
Record Size = 3011                   
Memory Dump @0x000000001116AC23

0000000000000000:   30000400 01000001 00c30b61 61616161 ?0..........aaaaa 
0000000000000010:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000020:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000030:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000040:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000050:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000060:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000070:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000080:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000090:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000000F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000100:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000110:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000120:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000130:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000140:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000150:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000160:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000170:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000180:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000190:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000001F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000200:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000210:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000220:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000230:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000240:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000250:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000260:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000270:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000280:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000290:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000002F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000300:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000310:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000320:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000330:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000340:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000350:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000360:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000370:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000380:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000390:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000003F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000400:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000410:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000420:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000430:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000440:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000450:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000460:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000470:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000480:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000490:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000004F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000500:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000510:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000520:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000530:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000540:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000550:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000560:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000570:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000580:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000590:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000005F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000600:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000610:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000620:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000630:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000640:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000650:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000660:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000670:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000680:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000690:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000006F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000700:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000710:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000720:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000730:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000740:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000750:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000760:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000770:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000780:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000790:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000007F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000800:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000810:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000820:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000830:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000840:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000850:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000860:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000870:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000880:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000890:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000008F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000900:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000910:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000920:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000930:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000940:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000950:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000960:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000970:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000980:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000990:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009A0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009B0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009C0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009D0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009E0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
00000000000009F0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A00:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A10:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A20:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A30:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A40:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A50:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A60:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A70:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A80:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000A90:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AA0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AB0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AC0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AD0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AE0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000AF0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B00:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B10:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B20:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B30:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B40:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B50:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B60:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B70:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B80:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000B90:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000BA0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000BB0:   61616161 61616161 61616161 61616161 ?aaaaaaaaaaaaaaaa 
0000000000000BC0:   616161???????????????????????????????aaa              

OFFSET TABLE:

Row - Offset                         
1 (0x1) - 3107 (0xc23)               
0 (0x0) - 96 (0x60)                  


DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

  

  删除或重建一个指定的索引作为单个事务来处理。该项在重建聚集索引时格外有用,当删除一个聚集索引时,sqlserver会重建每个非聚集索引以便将书签从聚集索引键改为RID。如果再新建或者重建聚集索引,Sql
server会再一次重建全部的非聚集索引,如果再新建或重建的聚集索引键值相同,可以设置Drop_existing=ON。

1.3 IGNORE_DUP_KEY

  是指如果一个update或者insert语句影响多行数据,但有一行键被发现产生重值时,整个语句就会回滚,IGNORE_DUP_KEY=on时产生重复键值时不会引起整个语句的回滚,重复的行会被舍弃其它的行会被插入或更新。

1.4 Statistics_norecompute

  选项决定了是否需要自动更新索引上的统计,每个索引维护着该索引首位字段的数值分布的柱状图,在查询执行计划时,查询优化器利用这些统计信息来判断一个特定索引的有效性。当数据达到一个阀值时,统计值会变。Statistics_norecompute选项允许一个关联的索引在数据修改时不自动更新统计值。该选择覆盖了auto_update_statistics的on值。

1.5 ONLINE   

  值默认OFF,
索引操作期间,基础表和关联的索引是否可用于查询和数据修改操作。
  当值为ON时,能够继续对基础表和索引进行查询或更新,但在短时间内获取sch_m架构修改锁,必须等待此表上的所有阻塞事务完成,在操作期间,此锁会阻止所有其它事务。
  当值为OFF时,可以会获取共享锁,防止更新基础表,但允许读操作

1.6 MAXDOP

  索引操作期间替代max degree of parallelism 实例配置,默认值为0,
根据当前系统工作负荷使用实际数量的处理器。

1.7 包含性列(included columns)
  包含列只在叶级别中出现,不控制索引行的顺序,它作用是使叶级别包含更多信息从而覆盖索引的调优能力,覆盖索引只出现在非聚集索引中,在叶级别就可以找到满足查询的全部信息。

1.8 on [primary]

  在创建索引时 create index
最后一个子句允许用户指定索引被放置在哪里。可以指定特定的文件组或预定义的分区方案。默认存放与表文件组相同一般都是主文件组中。

1.9约束和索引

    当我们创建主键或者唯一性约束时,会创建一个唯一性索引,被创建出来支持约束的索引名称与约束名称相同。
  约束是一个逻辑概念,而索引是一个物理概念,建立索引实际是创建一个占用存储空间并且在数据修改操作中必须得到维护的物理结构。
  创建约束就索引内部结构或优化器的选择来看是没有区别的。

二 索引碎片  

  2.1 SHOWCONTIG 

--   SQLserver 2000使用SHOWCONTIG查看索引碎片 (已过时)
dbcc SHOWCONTIG (tablename,'indexname') 

  例如下面查询一个PUB_StockCollect表下的IX_StockModel索引

图片 19

  (1)Page
Scanned-扫描页数:如果你知道行的近似尺寸和表或索引里的行数,那么你可以估计出索引里的页数。看看扫描页数,如果明显比你估计的页数要高,说明存在内部碎片。

  (2)Extents
Scanned-扫描扩展盘区数:用扫描页数除以8,四舍五入到下一个最高值。该值应该和DBCC
SHOWCONTIG返回的扫描扩展盘区数一致。如果DBCC
SHOWCONTIG返回的数高,说明存在外部碎片。碎片的严重程度依赖于刚才显示的值比估计值高多少。 

  (3)Extent
Switches-扩展盘区开关数:该数应该等于扫描扩展盘区数减1。高了则说明有外部碎片。

  (4)Avg. Pages per
Extent-每个扩展盘区上的平均页数:该数是扫描页数除以扫描扩展盘区数,一般是8。小于8说明有外部碎片。

  (5)Scan Density [Best Count:Actual
Count]-扫描密度[最佳值:实际值]:DBCC
SHOWCONTIG返回最有用的一个百分比。这是扩展盘区的最佳值和实际值的比率。该百分比应该尽可能靠近100%。低了则说明有外部碎片。

  (6)Logical Scan
Fragmentation-逻辑扫描碎片:无序页的百分比。该百分比应该在0%到10%之间,高了则说明有外部碎片。

  (7)Extent Scan
Fragmentation-扩展盘区扫描碎片:无序扩展盘区在扫描索引叶级页中所占的百分比。该百分比应该是0%,高了则说明有外部碎片。

  (8)Avg. Bytes Free per
Page-每页上的平均可用字节数:所扫描的页上的平均可用字节数。越高说明有内部碎片,不过在你用这个数字决定是否有内部碎片之前,应该考虑fill
factor(填充因子)。

  (9)Avg. Page Density
(full)-平均页密度(完整):每页上的平均可用字节数的百分比的相反数。低的百分比说明有内部碎片。

  总结:(1)逻辑扫描碎片:越低越好
(2)平均页密度:80%左右最好,低于%60重建索引,(3)最佳计数与实际计数相差较大重建索引。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图