查询性能提高与INSERT / UPDATE丢失

你怎么能确定性能上获得了SELECT通过索引列将超过上的性能损失INSERT在同一个表? 当索引损害更多而不是更好时,在表格大小上是否存在“临界点”?

我在任何时候都有SQL Server 2008中的表,有2-3百万行。 每次在表上完成插入操作时,也会在同一张表上使用其两列进行查找。 我试图确定是否有利于向查找中使用的两列添加索引。


像所有其他SQL相关的, 它取决于

  • 他们是什么样的领域? VARCHAR? 诠释? 约会时间?
  • 桌子上有其他的索引吗?
  • 你需要包含额外的领域?
  • 什么是聚集索引?
  • 交易中插入/删除了多少行?
  • 唯一真正知道的方法就是对它进行基准测试。 将索引放置到位并进行频繁监视,或者运行跟踪。


    这取决于你的工作量和你的要求。 有时数据会被加载一次并读取数百万次,但有时并不会读取所有加载的数据。

    有时读取或写入必须在一定时间内完成。


    情况1:如果表是静态的并且被大量查询(例如:购物车应用程序中的项目表),那么在适当的字段上的索引是非常有益的。

    情况2:如果表是高度动态的,并且每天不做很多查询(例如:用于审计目的的日志表),那么索引将减慢写入速度。

    如果上述两种情况是边界情况,那么在表上建立索引或不在表上建立索引取决于上述哪种情况下表中的争用最接近。

    如果不留下Query调查顾问的判断。 祝你好运。

    链接地址: http://www.djcxy.com/p/53741.html

    上一篇: performance gain on queries vs. loss on INSERT/UPDATE

    下一篇: subversion release management with TeamCity