索引优化建议

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

索引优化建议

 

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

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

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

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

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

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

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

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

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

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

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

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

MongoDB 索引的使用, 管理 和优化

【使用explain和hint】前面讲高级查询选项时,提到过"$explain" 和 ”$hint“可以作为包装查询的选项关键字使用,其实这两个本身就可以作为操作游标的函数调用!游标调用explain...
  • black_OX
  • black_OX
  • 2014年03月25日 17:12
  • 12604

全文检索之lucene的优化篇--创建索引库

在上一篇HelloWorld的基础上,建立一个directory的包,添加一个DirectoryTest的测试类,用来根据指定的索引目录创建目录存放指引.     DirectoryTest类中的...
  • liuyanlinglanq
  • liuyanlinglanq
  • 2014年12月31日 12:23
  • 2327

SQLSERVER2008R2 索引建立的几点建议

1、不要把聚集索引浪费在主键上,除非你只按主键查询        虽然SQL SERVER默认是在主键上建立聚集索引的,但实际应用中,这样做比较浪费。通常,我们会在每个表中都建立一个ID列,以区分每...
  • ju523756055
  • ju523756055
  • 2013年03月06日 15:28
  • 2898

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

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

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

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

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

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

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

第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。 第二,更重要的是,这些索引的建议对你的应用提高也是有限的。 对于应用的最佳索引策略应该基...
  • liqfyiyi
  • liqfyiyi
  • 2016年06月30日 16:09
  • 2001

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

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

索引设计建议

一、检查where子句和连接条件列 下面是不带where子句的select语句组成 select p.Name, p.StandardCost, p.Weight, p.ProductID f...
  • szyzxcv5689
  • szyzxcv5689
  • 2013年07月10日 19:55
  • 895

SQL Server查询系统建议的索引信息

日常应用中,如需查询缺少的索引信息,可使用系统DMV视图: sys.dm_db_missing_index_groups, sys.dm_db_missing_index_group_stats, s...
  • ap0405140
  • ap0405140
  • 2015年12月09日 09:56
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:索引优化建议
举报原因:
原因补充:

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