【问题标题】:when is the time to create indexes on your sql server db?什么时候在你的 sql server db 上创建索引?
【发布时间】:2012-07-18 04:33:18
【问题描述】:

在创建表开始时为您的 sql server db 创建索引是一种做法吗? 还是取决于此表的性能(或者说缺乏),所以稍后再创建?

【问题讨论】:

  • 这是一个非常广泛的主题......
  • 有些指标可以在产品规划时进行估算。在部署产品之后,可能会在以后出现对其他人的需求。
  • (1) 始终在您的表上创建 良好 聚集索引,(2) 索引您的外键列(以加快 JOIN 等),以及 (3) 观察你的系统。如果您遇到性能问题,请分析哪些附加索引可能会有所帮助 - 添加一个或两个 - 再次观察。不要过度索引 - 索引会带来开销,拥有未使用的索引比没有索引更糟糕。
  • 取决于您的数据库的性能和每天存储在您的数据库中的数据量。默认情况下,当您将列设置为表中的主键时,会在您的表上创建一个聚集索引。当该表中的数据增加时,即超过 10,000+ 并且您的存储过程需要很长时间(超过 4 秒),以防在加入两个或多个表后行超过 10000+ 来获取数据。那么你应该考虑实现索引。在表中更新和插入数据时,实现索引也会降低性能。

标签: sql-server sql-server-2008 indexing


【解决方案1】:

索引在从具有大量数据的表中检索数据时很有用。它通常应用于连接中使用的 id 字段。尽管在这些表上进行批量插入/更新时它们的成本非常高。 关于何时创建它们的问题:根据最佳设计实践,表结构/设计应首先完成,因为在设计期间,开发人员必须知道表的用途。因此,开发人员会知道表中有多少数据,因此最初应该建立索引

供参考:

http://beginner-sql-tutorial.com/sql-index.htm

http://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多