8.5.1 索引与系统性能
索引可以加快数据检索的速度,但它会使数据的插入、删除和更新变慢。尤其是簇索引,数据是按照逻辑顺序存放在一定的物理位置,当变更数据时,根据新的数据顺序,需要将许多数据进行物理位置的移动,这将增加系统的负担。对非簇索引,数据更新时也需要更新索引页,这也需要占用系统时间。因此在一个表中使用太多的索引,会影响数据库的性能。对于一个经常会改变的表,应该尽量限制表只使用一个簇索引和不超过3~4 个非簇索引。对事务处理特别繁重的表,其索引应尽量不超过3 个。
8.5.2 索引调整向导(Index Tuning Wizard)
索引调整向导可以帮助选择并创建一个最优化的索引集合,以提高数据库的性能。
要使用索引调整向导需要一个工作负荷记录(Workload)。 工作负荷记录由SQL 脚本或SQL Server Profiler 创建的存储在文件或表中的跟踪组成。如果没有现存的针对要进行索引调整的数据库或表的工作负荷记录,可以通过SQL Server Profiler 来创建一个(其具体方法请参见第19 章中SQL Server Profiler 的用法)。可以用Sample 1 – TSQL 跟踪定义来创建或新建一个跟踪。索引调整向导可以使用查询优化器根据工作负荷记录分析索引的性能,并提出相应的调整建议。可以立即让系统根据建议修改索引,也可以将任务列入计划以后再创建。
8.5.3 使用索引调整向导:
使用索引调整向导的步骤如下
(1) 从“Tools” 菜单中选择“Wizards” 选项,出现如图8-15 所示的选择向导界面。
(2) 从树型目录中选择“Management” 下的“Index Tuning Wizard” 选项,出现如图8-16 所示的索引调整向导界面。
(3) 单击“下一步”按钮,出现如图8-17 所示的选择服务器和数据库对话框。在此选择要进行索引调整的数据库。各选项含义如下:
Keep all existing indexes
保留已经存在的索引。如果不选择此选项,在进行索引优化时可能将删除一些索引。
Perform thorough analysis
对工作负荷记录进行彻底地分析。