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

默认情况下,SQL Server是否在表的所有列上创建非聚集索引

经和洽
2023-03-14
问题内容

sql server将创建任何默认的非聚集索引吗?我们真的应该将所有FK都作为非聚集索引吗?这里的权衡是什么


问题答案:

否,SQL Server不会自动创建非聚集索引。
除非您的CREATE TABLE声明另有说明,否则将基于主键自动创建聚簇索引。

是的,我会建议索引外键列,因为这些是最容易被JOIN’d
/搜索不要使用INEXISTS等等。但是,要知道,在低基数的设定值(性别为例)的指标会比较没有用,因为值之间没有足够的差异。

所有索引之间的权衡是它们可以加快数据检索速度,但会减慢数据插入/更新/删除速度。还需要执行维护,因为它们可能会变得碎片化(例如硬盘驱动器),但随着时间的推移可能不会被使用。索引也占用驱动器空间。



 类似资料:
  • 问题内容: 如果您定义如下界面 您可以在任何代码段中编写如下 那么equals方法从何而来,接口是否还扩展了超类Object?,如果确实如此,接口如何扩展类? 假设让该接口扩展超类Object,那么如果您看到为什么像Set这样的集合接口定义了equals()和hashCode()方法呢?所有类都扩展了Object类,因此,如果您在Object类中存在的接口中定义任何抽象方法,则实现该接口的人无需实

  • 问题内容: 我将实体添加到数据库中,并且工作正常。但是,当我检索列表时,会得到旧实体,直到取消取消部署应用程序并再次重新部署它之后,才会显示添加的新实体。这意味着默认情况下会缓存我的实体吗?但是,我没有在persistence.xml或任何此类文件中进行任何用于缓存实体的设置。 我什至尝试调用flush(),refresh()和merge()。但它仍然仅显示旧实体。我想念什么吗?请帮我。 问题答案

  • 我正在尝试使用以下步骤在Ruby中创建一个. rb文件: 这将创建一个名为“a”的文件,该文件工作正常;然而,当我将该文件重命名为.rb时,它会立即将该文件转换为文本文件。这是为什么? 我一直在创建文件,从一开始就创建了一个新文件,并将其命名为“< code>a.rb”,它会自动将其关联到一个ruby文件。现在,它只是将命名关联到一个文本文件,我必须去掉< code >。rb并在以后手动分配文件类

  • 问题内容: 我知道我可以用来将字符串字段设置为 特定新索引中的新字段 。 有没有办法将此设置 全局 应用-即为任何新索引中的任何字符串字段设置属性?(无需为每个新索引设置它) 问题答案: 是的,你可以通过创建一个实现这个指标模板上有一个映射类型和动态模板 然后,您可以在任何新索引中创建任何文档,并且所有字符串字段都将为 如果检查新创建的映射类型,则将看到该字段为

  • 为什么引用类型对象o无法访问变量a。它显示错误a无法解决或不是字段。