在SQL Server中使用索引的技巧
2008-04-18 11:12:54 来源:IT专家网社区 作者:松晨 点击:
在SQL Server中,为了查询性能的优化,有时我们就需要对数据表通过建立索引的方式,目的主要是根据查询要求,迅速缩小查询范围,避免全表扫描。
INDEX重建索引。
DBCC INDEXDEFRAG 命令是联机操作,所以索引只有在该命令正在运行时才可用。而且可以在不丢失已完成工作的情况下中断该操作。这种方法的缺点是在重新组织数据方面没有聚集索引的除去/重新创建操作有效。
重新创建聚集索引将对数据进行重新组织,其结果是使数据页填满。填满程度可以使用 FILLFACTOR 选项进行配置。这种方法的缺点是索引在除去/重新创建周期内为脱机状态,并且操作属原子级。如果中断索引创建,则不会重新创建该索引。
我们来看看索引重建使用的方法:
语法 DBCC DBREINDEX ( [ ‘TableName’ [ , index_name [ , fillfactor ] ] ] )
参数 ‘TableName’
是要重建其指定的索引的表名。数据库、所有者和表名必须符合标识符的规则。有关更多信息,请参见使用标识符。如果提供 database 或 owner 部分,则必须使用单引号 (‘)
将整个 database.owner.table_name 括起来。如果只指定 table_name,则不需要单引号。
index_name 是要重建的索引名。索引名必须符合标识符的规则。如果未指定 index_name 或指定为 ‘ ‘,就要对表的所有索引进行重建。
fillfactor 是创建索引时每个索引页上要用于存储数据的空间百分比。fillfactor
替换起始填充因子以作为索引或任何其它重建的非聚集索引(因为已重建聚集索引)的新默
认值。如果 fillfactor 为 0,DBCC DBREINDEX 在创建索引时将使用指定的起始fillfactor。
我们在查询分析器中输入如下的命令:
DBCC DBREINDEX (‘MyTable,’’,80)
这样就会索引重建了。