如题,我检索到一个表内一索引碎片等于50%,所以重新生成它:--该索引为聚集索引
ALTER INDEX [I_S#_C#] ON [dbo].[SC] REBUILD现在的问题是:好奇怪,为何我重新生成索引后检索 它的碎片百分比还是50%,没有变化?
是否有可能有些索引本身就存在比较高的逻辑碎片百分比,即使重新生成也无法解决?
求解释...
ALTER INDEX [I_S#_C#] ON [dbo].[SC] REBUILD现在的问题是:好奇怪,为何我重新生成索引后检索 它的碎片百分比还是50%,没有变化?
是否有可能有些索引本身就存在比较高的逻辑碎片百分比,即使重新生成也无法解决?
求解释...
DBCC SHOWCONTIG(表名,索引名)
/*
OBJECT_ID INDEX_ID PARTITION_NUMBER AVG_FRAGMENTATION_IN_PERCENT OBJECT_NAME SCHEMA_NAME INDEX_NAME PARTITION_COUNT
----------- ----------- ---------------- ---------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ---------------
2009058193 1 1 50 SC dbo I_S#_C# 1(1 行受影响)
*/
DBCC SHOWCONTIG(SC,I_S#_C#)
/*DBCC SHOWCONTIG 正在扫描 'SC' 表...
表: 'SC' (2009058193);索引 ID: 1,数据库 ID: 9
已执行 TABLE 级别的扫描。
- 扫描页数................................: 2
- 扫描区数..............................: 1
- 区切换次数..............................: 0
- 每个区的平均页数........................: 2.0
- 扫描密度 [最佳计数:实际计数].......: 100.00% [1:1]
- 逻辑扫描碎片 ..................: 50.00%
- 区扫描碎片 ..................: 0.00%
- 每页的平均可用字节数.....................: 1044.0
- 平均页密度(满).....................: 87.10%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/
这个看完要怎么操作^^
你DBCC DBREINDEX(表名,索引名)
再DBCC SHOW...给结果看看,
我用的是简单的学生数据库测试的.
请问这个,聚集索引页大小有何关系?DBCC DBREINDEX(SC,I_S#_C#)
/*DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。*/
DBCC SHOWCONTIG(SC,I_S#_C#)
/*DBCC SHOWCONTIG 正在扫描 'SC' 表...
表: 'SC' (2009058193);索引 ID: 1,数据库 ID: 9
已执行 TABLE 级别的扫描。
- 扫描页数................................: 2
- 扫描区数..............................: 1
- 区切换次数..............................: 0
- 每个区的平均页数........................: 2.0
- 扫描密度 [最佳计数:实际计数].......: 100.00% [1:1]
- 逻辑扫描碎片 ..................: 50.00%
- 区扫描碎片 ..................: 0.00%
- 每页的平均可用字节数.....................: 1044.0
- 平均页密度(满).....................: 87.10%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/
----ALTER 之
ALTER INDEX [I_S#_C#] ON [dbo].[SC] REBUILD
--还是以上老样子.不会是因为我这表记录太少 表结构太简单了吧?
考虑其他问题?索引的重新组织跟重新生成应该只跟这索引有关吧?跟其他信息比如表关系什么的都没关系吧?
SQL2K5以上还没怎么整过,
查询IAM页
--
逻辑扫描碎片 对索引的叶级页扫描所返回的无序页的百分比。该数与堆集和文本索引无关。无序页是指在 IAM 中所指示的下一页不同于由叶级页中的下一页指针所指向的页。 你有兴趣看看小麦和石头,影子老师的博客,有讲如何查看底层索引页和数据页的,再看一下是不是IAM指向的不同你索引页第一页所指向的
顺便看了页和区的一些概念。
加了聚集索引不就不是IAM的存储结构了吗?如何查看底层索引页和数据页..底层的不清楚只会简单使用,
谢谢分享。