WEB开发网
开发学院数据库MSSQL Server 深入了解SQL Server中方便的索引技术 阅读

深入了解SQL Server中方便的索引技术

 2008-09-02 09:59:07 来源:WEB开发网   
核心提示:开始应用程序的时候,你应该能够根据一组合理的规则集合识别许多的索引,深入了解SQL Server中方便的索引技术,当应用程序增长及改变的时候,所以对索引进行检查,决定选择哪些索引,如果你花了时间去分析和构建必需的索引,以便确保没有忽略更好的索引方案,这需要依据应用程序的使用方式

开始应用程序的时候,你应该能够根据一组合理的规则集合识别许多的索引。当应用程序增长及改变的时候,所以对索引进行检查,以便确保没有忽略更好的索引方案。这需要依据应用程序的使用方式,而不是理论知识。同样,还要确保错误的,重复的,或者没有价值的索引被删除。这是一项预防的措施,可以保证你的SQL Server不需要管理不需要的索引。在这篇文章中,我们将会给出有关索引建议、索引创建和索引验证的建议。

常用索引字段

许多数据库管理员和开发人员都遇到的一个常见问题,就是与常被推荐的索引传统字段有关。通常的推荐有:

主键

外键

支持select, insert, update和 delete命令中以下子句的字段:

INNER join

RIGHT | LEFT OUTER join

where

ORDER BY

GROUP BY

HAVING

还有一些额外的关于索引的考虑如下所示:

数据量——当数据行数很少的时候,表扫描可以像穿过索引去访问数据一样快,并且比它成本还要低。

数据的选择性——当数据选择性较低的时候,例如字段中存有相同数据的时候,索引的价值最低。

处理类型——在事务处理系统中,索引应该最小化,以支持尽可能快地插入,与报告系统相比较,以新的方式和不同的方式查询数据可以从扩展的索引中得到好处。

SQL Server 2000 索引中的要与不要

Indexing 问答: 回答常见的索引相关问题

我如何为我的应用程序确定需要的索引?

一旦确定了常用的推荐的索引,就需要开始为你的应用程序决定最佳的索引了。在下面的列表中,SQL Server工具可以帮助你完成这个确定的过程。

ID工具目标SQL 版本其它资源
1Profiler识别性能糟糕的查询,作为确定潜在索引的方式SQL Server 2000跟使用 SQL Server 2005 Profiler踪查询执行结果
SQL Server 2005SQL Profiler: 特性、功能,以及在 SQL Server 2005中的安装
2数据库引擎调整顾问(Database Engine Tuning Advisor)分析来自Profiler的数据或者实时提供有益索引或者基于分区SQL Server 2005Database Engine Tuning Adviser: 任何调整你的新 SQL Server 2005
3索引调整向导(Index Tuning Wizard)分析来自Profiler 的数据或者实时提供有益索引SQL Server 2000使用 Index Tuning Wizard的技巧
4sys.dm_db_missing _index_columns (动态管理视图:Dynamic Management View)识别缺少索引的字段SQL Server 2005sys.dm_db_缺少索引的字段

我如何构建我的索引?

一旦确定了通常建议的索引,接下来就应该为你的应用程序决定最好的索引了。下面列表中的SQL Server工具可以帮助你确定这个过程。

ID命令/目录举例
1create INDEX T-SQL 命令(SQL Server 2000)创建一个非聚簇的索引
create INDEX [IDX_Job_Desc] ON [dbo].[jobs] ([job_desc])
GO
2create INDEX T-SQL 命令(SQL Server 2005)深入了解SQL Server中方便的索引技术
3Enterprise Manager (SQL Server 2000)

深入了解SQL Server中方便的索引技术

深入了解SQL Server中方便的索引技术

4Management Studio (SQL Server 2005)
  

我如何验证我的索引是有益的呢?

构建索引是好事,但是它不值得在没有判断你是否从中获得收益在情况下,花费时间去构建和维护索引。一个常见的你不想沦为牺牲品的场景就是,构建了一个只会给部分应用程序带来好处,却给应用程序的其它部分带来干扰的索引。一种可以防止此类事件的方式就是构建一个基线,当数据库发生变更的时候,在数据集合脚本上运行它,然后将结果与基线进行比较。

在你的环境中添加一些方便的索引,可以让你的性能有显著的提升。挑战就是要确保所有的常见的推荐索引都被覆盖了,然后以更加高级的方式继续向前,决定选择哪些索引。如果你花了时间去分析和构建必需的索引,那么记得用可以计量的标准对性能进行验证。

Tags:深入 了解 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接