索引优化建议

原创 2007年09月26日 13:53:00
优化数据库性能

索引优化建议

 

Microsoft® SQL Server® 2000 查询优化器在多数情况下可靠地选择最高效的索引。总体索引设计策略应为查询优化器提供更多的索引选择机会,并支持其做出正确的决定。这在各种情形下可减少分析时间并取得较好的性能。

不要总是将使用索引等同于好的性能,反之亦然。如果使用索引总能产生最佳性能,查询优化器的工作就太简单了。实际上,不正确的索引检索选择会导致比最佳性能差的结果。因此,查询优化器的任务是只在索引检索能提高性能时才选择使用索引检索,在其妨害性能时则避免使用。

关于创建索引的建议如下:

  • 将更新尽可能多的行的查询写入单个语句内,而不要使用多个查询更新相同的行。仅使用一个语句,就可以利用优化的索引维护。

  • 使用索引优化向导分析查询并获得索引建议。有关更多信息,请参见索引优化向导

  • 对聚集索引使用整型键。另外,在唯一列、非空列或 IDENTITY 列上创建聚集索引可以获得性能收益。有关更多信息,请参见使用聚集索引

  • 在查询经常用到的所有列上创建非聚集索引。这可以最大程度地利用隐蔽查询。有关更多信息,请参见使用非聚集索引

  • 物理创建索引所需的时间在很大程度上取决于磁盘子系统。需要考虑的重要因素包括:
    • 用于存储数据库和事务日志文件的 RAID(独立磁盘冗余阵列)等级。

    • 磁盘阵列中的磁盘数(如果使用了 RAID)。

    • 每个数据行的大小和每页的行数。这将决定为创建索引须从磁盘读取的数据页的数目。

    • 索引中的列数和使用的数据类型。这将决定必须写入磁盘的索引页的数目。
  • 检查列的唯一性。有关更多信息,请参见使用唯一索引

  • 在索引列中检查数据分布。通常情况下,为包含很少唯一值的列创建索引或在这样的列上执行联接将导致长时间运行的查询。这是数据和查询自身的基本问题,通常不识别这种情况就无法解决这类问题。例如,如果物理电话簿按姓的字母顺序排序,而城市里所有人的姓都是 Smith 或 Jones,则无法快速找到某个人。 

相关文章推荐

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

http://www.itokit.com/2011/1207/72718.html 我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。有几点要记住。   第一,M...

使用NOSQL的MongoDB建立索引时需要注意的几点建议和Explain优化分析

原文链接:http://www.itokit.com/2011/1207/72718.html 我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。有几点要记住。 ...

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析 (转)

http://www.itokit.com/2011/1207/72718.html 我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。有几点要记住。   第一,Mon...

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。   第二,更重要的是,这些索引的建议对你的应用提高也是有限的。 对于应用的最佳索引策...

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。 第二,更重要的是,这些索引的建议对你的应用提高也是有限的。 对于应用的最佳索引策略应该基...

索引设计建议

一、检查where子句和连接条件列 下面是不带where子句的select语句组成 select p.Name, p.StandardCost, p.Weight, p.ProductID f...

mysql 建议索引的原因以及优缺点

mysql 建议索引的原因以及优缺点

Elasticsearch索引建议

最近在做日志收集,用到Elasticsearch作为存储层。有一些使用小贴士

MongoDB 关于索引的建议

我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。有几点要记住。 第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:索引优化建议
举报原因:
原因补充:

(最多只允许输入30个字)