北大青鸟教学:SQL Server中使用索引需要注意的问题(下)

北京北大青鸟学校学术部提供:

接上篇:SQL Server中使用索引需要注意的问题(上)
4)索引对查询有一这的优化,但由于改变一个表的内容,将会引起索引的变化。频繁的对数据操作如insert,update,delete语句将导致系统花费较大的代价进行索引更新,引起整体性能的下降。一般来讲,在对查询性能的要求高于对数据维护性能要求时,应该尽量使用索引,有时在这种操作数据库比较频繁的某些极端情况下,可先删除索引,再对数据库表更新大量数据,最后再重建索引,新建立的索引总是比较好用。

索引在使用了长久的时候,就会产生很多的碎片,查询的性能就会受到影响,这时候有两种方法解决,一是利用DBCC INDEXDEFRAG整理索引碎片,还有就是利用DBCC DBREINDEX重建索引。(北京北大青鸟学校)

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)
这样就会索引重建了。 (北京北大青鸟学校)想要了解北大青鸟好吗?北大青鸟怎么样?北大青鸟课程?北大青鸟学费多少等问题,欢迎您与通州北大青鸟网站在线老师联系

北大青鸟网上报名
北大青鸟招生简章