何时创建新的SQL Server索引?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

何时创建新的SQL Server索引?

2019-11-18 17:43:59 197 1

显然(方法),在BIT列上创建索引是不必要的。但是,如果您有一个需要搜索的列,其中每个值都可能是唯一的(如BlogPost或之类的)StreetAddress,那么索引似乎是合适的(同样,方法)。

但是截止点是什么?如果期望10,000行,并且其中有大约20个唯一值,该怎么办。是否应该创建索引?

提前致谢。

问题来源于stack overflow

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2019-11-18 17:44:09

    最好的答案是分析您的查询,并查看索引是否可以改善您的查询。回答这个问题的困难在于,几乎不可能概括查询优化器的行为。

    也就是说,经验法则是,如果您对表上的给定查询的选择性为10%或更低,那么您很可能会从索引中受益。因此,在您的示例中,如果您的值均匀分布,则可能会受益于索引。但是,考虑到表很小,因此性能提升可能微不足道。

    这不是一条硬性规定,因为有很多因素可以改变10%的数字,包括使用簇或其他索引类型,行的大小(如果某些列不是内联的话),查询结构等。

    还请记住,将具有索引的表插入到表中会大大降低性能。如果此表经常更新或附加,则较慢的插入和更新可能会抵消索引的速度提升。

    请参阅有关Tablescan与索引访问的MSDN文章。

    编辑:正如其他人指出的那样,如果您执行聚合查询(例如,计算特定值出现的次数),则查询可能会受益于索引。如果您经常在特定的列上进行排序,您也可能会受益。

    0 0
相关问答

4

回答

请教一个范围查询的问题

小文文文 2019-06-14 14:37:01 116822浏览量 回答数 4

5

回答

Spark 【问答合集】

社区小助手 2019-05-29 14:13:40 130238浏览量 回答数 5

10

回答

【精品问答合集】Hbase热门问答

hbase小能手 2019-05-29 14:37:26 123861浏览量 回答数 10

1

回答

通过spark-thriftserver读取hive表执行sql时,tasks 数量怎么设置

游客iwhrjhvjoyqts 2019-07-05 15:30:22 115270浏览量 回答数 1

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 341467浏览量 回答数 8

38

回答

[@饭娱咖啡][¥20]对于慢sql有没有什么比较实用的诊断和处理方法?

江小白太白 2018-10-30 18:47:38 144440浏览量 回答数 38

3

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 133644浏览量 回答数 3

8

回答

flink sql 支持checkpoints吗?

游客izljdlkgbdwfc 2019-07-10 17:46:37 126404浏览量 回答数 8

11

回答

【精品问答合集】MongoDB热门问答

李博 bluemind 2019-05-29 16:50:19 123595浏览量 回答数 11

78

回答

【2013.9.5修正版图文】新手如何使用阿里云(linux)服务器建站(搬站)

姑苏公子 2013-04-11 00:39:13 108975浏览量 回答数 78
66
文章
12595
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载