浅谈数据库索引 数据库索引有什么用( 七 )


这里指的工作量,可以来自两个方面:使用SQL Server捕捉的轨迹和包含了SQL语句的文件 。
索引调整向导总是基于一个已经定义好的工作量 。
如果一个工作量不能反映正常的操作,那么它建议使用的索 引不是实际的工作量上性能最好的索引 。
索引调整向导调用查询分析器,使用所有可能的组合评定在这个工作量中每一个查询语句的性能 。
然后,建议在整个工作量 上可以提高整个查询语句的性能的索引 。
如果没有供索引调整向导来分析的工作量,那么可以使用图解器立即创建它 。
一旦决定跟踪一条正常数据库活动的描述样 本,向导能够分析这种工作量和推荐能够提高数据库工作性能的索引配置 。
索引调整向导对工作量进行分析之后,可以查看到一系列的报告,还可以使该向导立即创建所建议的最佳索引,或者使这项工作成为一种可以调度的作业,或者生成一个包含创建这些索引的SQL语句的文件 。
索引调整向导允许为SQL Server数据库选择和创建一种理想的索引组合和统计,而不要求对数据库结构、工作量或者SQL Server内部达到专家的理解程度 。
总之,索引调整向导能够作到以下几个方面的工作:
通过使用查询优化器来分析工作量中的查询任务,向有大量工作量的数据库推荐一种最佳的索引混合方式
分析按照建议作出改变之后的效果,包括索引的用法、表间查询的分布和大量工作中查询的工作效果
为少量查询任务推荐调整数据库的方法
通过设定高级选项如磁盘空间约束、最大的查询语句数量和每个索引的最多列的数量等,允许定制推荐方式
图解器
图解器能够实时抓取在服务器中运行的连续图片,可以选取希望监测的项目和事件,包括Transact-SQL语句和批命令、对象的用法、锁定、安全事件和 错误 。
图解器能够过滤这些事件,仅仅显示用户关心的问题 。
可以使用同一台服务器或者其他服务器重复已经记录的跟踪事件,重新执行那些已经作了记录的命令 。
通过集中处理这些事件,就能够很容易监测和调试SQL Server中出现的问题 。
通过对特定事件的研究,监测和调试SQL Server问题变得简单多了 。
查询处理器
查询处理器是一种可以完成许多工作的多用途的工具 。
在查询处理器中,可以交互式地输入和执行各种Transact-SQL语句,并且在一个窗口中可以同时 查看Transact-SQL语句和其结果集;可以在查询处理器中同时执行多个Transact-SQL语句,也可以执行脚本文件中的部分语句;提供了一 种图形化分析查询语句执行规划的方法,可以报告由查询处理器选择的数据检索方法,并且可以根据查询规划调整查询语句的执行,提出执行可以提高性能的优化索 引建议,这种建议只是针对一条查询语句的索引建议,只能提高这一条查询语句的查询性能 。
系统为每一个索引创建一个分布页,统计信息就是指存储在分布页上的某一个表中的一个或者多个索引的关键值的分布信息 。
当执行查询语句时,为了提高查询速度 和性能,系统可以使用这些分布信息来确定使用表的哪一个索引 。
查询处理器就是依赖于这些分布的统计信息,来生成查询语句的执行规划 。
执行规划的优化程度依 赖于这些分布统计信息的准确步骤的高低程度 。
如果这些分布的统计信息与索引的物理信息非常一致,那么查询处理器可以生成优化程度很高的执行规划 。
相反,如 果这些统计信息与索引的实际存储的信息相差比较大,那么查询处理器生成的执行规划的优化程度则比较低 。
查询处理器从统计信息中提取索引关键字的分布信息,除了用户可以手工执行UPDATE STATISTICS之外,查询处理器还可以自动收集统计这些分布信息 。
这样,就能够充分保证查询处理器使用最新的统计信息,保证执行规划具有很高的优化 程度,减少了维护的需要 。
当然,使用查询处理器生成的执行规划,也有一些限制 。
例如,使用执行规划只能提高单个查询语句的性能,但是可能对整个系统的性能 产生正面的或者付面的影响,因此,要想提高整个系统的查询性能,应该使用索引调整向导这样的工具 。
结论
在以前的SQL Server版本中,在一个查询语句中,一个表上最多使用一个索引 。
而在SQL Server 7.0中,索引操作得到了增强 。
SQL Server现在使用索引插入和索引联合算法来实现在一个查询语句中的可以使用多个索引 。