与查询性能调优相似,在数据库中创建有用的索引经常是艺术和科学的结合。在加速SELECT查询的同时,索引减慢了数据的修改。必须平衡读取活动与数据修改活动带来的索引开销的代价/受益。每一个增加到表中的索引都会以数据修改速度为代价改善查询性能。在这之上,索引的效能会随着数据的改变而改变,由此几个星期前索引还是有用的,今天可能就没用了。在SQL Server 2000中最大的困难之一是找出哪一个索引没被使用——从来都不使用或很少使用。这是重要的,因为增加索引减慢更新速度。如果想在表中创建索引,则它们应该在高优先级的查询中很好地使用。如果SQL Server没有使用某个索引,它就是静负荷。
现在在SQL Server 2005中,可以通过查询动态管理视图sys.dm_db_index_usage_stats查看索引是否被使用。这个视图从SQL Server实例上次重启以后返回有关索引查找、扫描、更新或查找的次数的统计信息。它也返回引用索引的最后的时间。