1) 统计信息更新
在创建索引时,SQL Server会自动存储有关的统计信息。查询优化器会利用索引统计信息估算使用该索引进行查询的成本。然而,随着数据的不断变化,索引和列的统计可能已经过时,从而导致查询优化器选择的查询处理方法不是最佳的。因此,有必要对数据库中的这些统计信息进行更新。
用户应避免频繁地进行索引统计和更新,特别应避免在数据库操作比较集中的时间段内更新统计。
例题:使用UPDATE STATISTICS 命令更新book数据库中的book1表的IX_book1索引的统计信息。
USE book
GO
UPDATE STATISTICS book1 IX_book1
GO
2) 使用DBCC SHOWCONTIG 语句扫描表
对表进行数据操作可能会导致表碎片的产生,而表碎片会导致读取额外页,从而造成数据查询性能的降低,此时,用户可以通过使用DBCC SHOWCONTIG 语句来扫描表,并通过其返回值确定该索引页是否已经严重不连读。
例题:利用DBCC SHOWCONTIG 获取book数据库中book1表的IX_book1索引的碎片信息。
USE book
GO
DBCC SHOWCONTIG (book1,IX_book1)
GO
3)使用DBCC INDEXDEFRAG 语句进行碎片整理
例题: 用DBCC INDEXDEFRAG 命令对book数据库中book1表的IX_book1索引进行碎片整理。
USE book
GO
DBCC INDEXDEFRAG (book,book1,IX_book1)
GO