WEB开发网
开发学院数据库MSSQL Server SQL Server使用索引实现数据访问优化 阅读

SQL Server使用索引实现数据访问优化

 2009-06-09 10:31:41 来源:WEB开发网   
核心提示: 上面的查询显示的AdventureWorks’数据库的索引碎片信息如下:分析上面的结果,你就能发现在哪里出现了索引碎片,SQL Server使用索引实现数据访问优化(9),应用下面的规则:ExternalFragmentation的值>10,预示对应的索引出现外部碎片,另

上面的查询显示的AdventureWorks’数据库的索引碎片信息如下:

SQL Server使用索引实现数据访问优化

分析上面的结果,你就能发现在哪里出现了索引碎片,应用下面的规则:

ExternalFragmentation的值>10,预示对应的索引出现外部碎片。InternalFragmentation的值<75,预示对应的索引出现内部碎片

3、怎样重新整理索引碎片

有2种方式:

索引重组:执行下面的命令:

ALTERINDEXALLONTableNameRECOGNIZE

索引重建:

ALTERINDEXALLONTableNameREBUILDWITH(FILLFACTOR=90,ONLINE=ON)

通过使用具体索引的名字代替ALL,你能重组或重建单个的索引。你也可以使用数据库控制台来重建/重组索引

SQL Server使用索引实现数据访问优化

4、什么时候重组和重建索引?

当外部碎片的值在10-15,内部碎片的值在60-75,对于这样的索引,你应该重组索引。否则,你应该重建索引。

关于索引重建的一个重要的事情是:一旦在一个特定的表上重建索引,表就会被锁定(重组的时候不会发生)。所以,对于一个产品数据库的一个大的表,因为在一个大表上的索引重建往往需要花费数个小时,我们不希望这种锁定。幸运的是,在SQL2005有一个解决方法,你可以在重建一个表的索引的时候,把ONLINE选项的值设为ON,这样会使重建索引和表上的数据事务同样进行。

四、实现数据访问结束语

在数据表里的所有适合创建索引的字段上创建索引,这是非常诱惑人的。但是如果你正在从事一个事务数据库工作,在每个字段上创建索引并不是每次都是需要的。事实上,在一个OLTP系统上创建大量的索引可能会降低数据库的性能。(因为当很多操作是更新操作的时候,更新数据意味着更新索引)

一个首要的规则建议如下:

如果你在从事一个事务性数据库,平均不要在一个表上创建超过5个索引,另外,如果你在从事数据仓库,平均最高可在一个表上创建10个索引。

上一页  4 5 6 7 8 9 

Tags:SQL Server 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接