当前位置: 首页 > 面试题库 >

SQL Server的理想索引策略是什么?

仇和蔼
2023-03-14
问题内容

我和一个朋友正在使用SQL Server进行一个新项目。在我过去完成的项目中,SQL始终将索引放在JOIN或WHERE中使用的任何字段上。

我的朋友仅在有表演需要时才添加它们。这个想法是维护索引需要付出一定的代价,并且您想确保值得付出这一代价。可以公平地说,某些查询将不会经常使用,而且某些表将比其他表更积极地添加到表中。

因此,我正在寻找有关数据库索引的“最佳实践”的建议。什么对您有效?


问题答案:

我个人倾向于使用 主动方法
:根据您的查询,在需要的地方添加索引。如您所说,在JOIN或WHERE中涉及的字段上。每个索引都会加快读取查询的速度,但会减慢写入速度(因为每次写入都需要更新索引)。因此,对于写密集型表,可能需要其他解决方案(数据仓库,复制…)。

另一种方法,仅在性能需要的地方添加索引,仅当您进行主动监视时才有效,但即使如此,它也有 一些缺点

  • 您将不得不向遭受性能问题的表中添加索引。添加索引时,您的表被锁定-这是一个使用率很高的表!
  • 通常,在测试时,测试数据比应用程序中的实际数据小几个数量级。瓶颈有被忽视的风险。


 类似资料:
  • 本文向大家介绍SQLSERVER中忽略索引提示,包括了SQLSERVER中忽略索引提示的使用技巧和注意事项,需要的朋友参考一下 当我们想让某条查询语句利用某个索引的时候,我们一般会在查询语句里加索引提示,就像这样 当在生产环境里面,由于这个索引提示的原因,优化器一般不会再去考虑其他的索引,那有时候这个索引提示可能会导致查询变慢 经过你的测试,发现确实是因为这个索引提示的关系导致查询变慢,但是SQL

  • 本文向大家介绍什么是安全策略?相关面试题,主要包含被问及什么是安全策略?时的应答技巧和注意事项,需要的朋友参考一下 回答:安全策略是一个正式且简短的计划,其中包含组织的目标,目的和信息安全程序。简而言之,它定义了确切地需要保护免受威胁的条件以及在威胁发生时如何处理情况。

  • 策略模式 一、策略模式的定义 二、策略模式的实际应用 三、策略模式中的设计原则 策略模式 策略模式的定义 策略模式,顾名思义就是指对象具有某个行为,但是在不同的业务场景下,这个行为应该有不同的表现形式,也就是有了不同的策略。让对象能再不同的场景下对同一行为有不同的实现,这就是策略模式。 下面是策略模式的类图: 首先定义一个策略接口: public interface Strategy { pub

  • 问题内容: Prevayler保证所有写入(通过其事务)都是同步的。但是读呢? 如果不使用显式同步(在用户代码中),可以进行脏读吗? 如果将业务对象读取为: ? 如果是这样,哪种同步策略对用户代码有利? (考虑业务对象A包含业务对象Bs的集合), 使用同步集合(A中B的集合),例如从java.util.concurrent包中? 同步外部事务的集合读取与内部事务的集合写入,例如在读写之间使用“ s

  • 我是elasticsearch的新手,我想设置索引生命周期策略(从热到热),使用java和spring boot基于时间存储数据。所以我的问题是: 我可以将生命周期策略设置为从自定义密钥(日期)读取吗?如果可以,我该如何执行?密钥是否需要采用某种格式 如果1不可能,是否有办法手动设置@时间戳字段?如果我们用这种格式设置一个键,它会起作用吗 如果1和2不可能,这意味着所有的滚动都应该以编程方式完成,

  • 主要内容:1 独立的列,2 前缀索引和索引选择性,3 多列(组合、联合)索引,3.1 多个单列索引的问题,3.2 使用多列索引,4 选择适合的索引列顺序,5 聚簇(聚集)索引,6 覆盖索引详细介绍了各种高性能的索引使用策略,比如联合索引、索引顺序、聚簇索引、覆盖索引等等,以及常见索引失效的情况。 前面我们已经介绍了各种类型的索引结构及其对应的优缺点: BTREE索引的数据结构以及具体实现原理深入解析 哈希索引的数据结构以及索引的优缺点 正确的创建和使用索引是实现高性能查询的基础。我们通常会看到一