假如您有一个盛满水的玻璃杯,您要尝试再向这个玻璃杯中加水.结果会怎样呢?水会溢出来. SQL Server 的情况也是如此.当索引页填充满时,如果尝试添加新行,则 SQL Server 会将大约一半的行移动到新页,以便为新添加的行腾出空间.这就是通常所说的“页面分割”.页面分割可为新记录腾出空间,但却既费时又非常耗费资源,并且会产生碎片,从而可能对 I/O 操作产生负面影响.那么,如何避免此类情况呢? 要防止此类情况的发生,必须主动确定填充因子值.创建或重新构建索引后,填充因子值会确定每个叶级页…
在创建聚集索引时,表中的数据按照索引列中的值的顺序存储在数据库的数据页中.在表中插入新的数据行或更改索引列中的值时,Microsoft® SQL Server™ 2000 可能必须重新组织表中的数据存储,以便为新行腾出空间,保持数据的有序存储.这同样适用于非聚集索引.添加或更改数据时,SQL Server 可能不得不重新组织非聚集索引页中的数据存储.向一个已满的索引页添加某个新行时,SQL Server 把大约一半的行移到新页中以便为新行腾出空间.这种重组称为页拆…
索引分为聚簇索引和非聚簇索引 1.聚簇索引/聚集索引 聚簇索引的顺序就是数据的物理存储顺序,对于一个表来说,只有一个聚簇索引 create unique clustered index id_index on table_1(id asc) with /*填充因子10%*/ 2.非聚簇索引/非聚集索引 聚簇索引的顺序跟数据的物理顺序无关,索引与数据存放在不同的物理区域,建立非聚簇索引时数据本身不进行排序,一个表中可含多个非聚簇索引. create nonclustered index id_da…
CREATE NONCLUSTERED INDEX IX_d_name ON department(d_name) with fillfactor=30 使用 fill factor 选项可以指定 Microsoft SQL Server 2005 使用现有数据创建新索引时将每页填满到什么程度.由于在页填充时 SQL Server 必须花时间来拆分页,因此填充因子会影响性能. 仅在创建或重新生成索引时使用填充因子.页面不会维护在任何特定的填充水平上. fill factor 的默认值为 0,有效…