如果两个部分使用的索引页的数据量低于压缩选项指定的级别,那么 B 型树扫描程序线程通过合并这些页面来压缩索引。可以设置压缩级别以控制查找和装入数据所需的 I/O 量。
B 型树扫描程序线程查找由于其低于指定的级别而可压缩的索引页。B 型树扫描程序可以压缩具有已删除项的索引页和没有已删除项的页面。
缺省情况下,B 型树扫描程序以中等级别进行压缩。下表提供有关将压缩级别更改为高或低的情况下产生的性能益处和代价的信息。
压缩级别 | 性能益处和代价 | 何时使用 |
---|---|---|
低 | 对于预期会快速增长并带有频繁的 B 型树节点分裂的索引,低压缩级别很有利。压缩级别设置为低时,B 型树索引不需要具有中高压缩级别的索引的那么多分裂,因为更多的可用空间保留在 B 型树节点中。 | 如果预期索引快速增长且频繁分裂,那么可能希望将压缩级别更改为低。 |
高 | 通常,如果索引为只读或其 90% 为只读,那么高压缩级别很有利,因为搜索数据将需要穿过更少的页面(和更少的 I/O)。
示例可能为没有频繁更改的索引或正在进行批量(块)删除操作的索引。
使用高级别压缩还意味着性能代价,因为其耗用更多 I/O 来更积极的压缩索引。压缩级别高的时候,选择操作将具有较少 I/O。 |
在以下情况下可能希望将压缩级别更改为高:
|
如果无需将压缩级别更改为高或低,请将 BTSCANNER 配置参数的压缩选项设置为 med 或 default。
除了指定何时尝试连接两个部分使用页面的压缩选项,还可以使用 FILL FACTOR 配置参数来控制何时添加新的索引页。用 FILLFACTOR 配置参数或 CREATE INDEX 语句的 FILLFACTOR 选项定义的索引填充因素是索引构建过程中填充的每个索引页的百分比。