【发布时间】:2011-04-12 10:15:16
【问题描述】:
我在 SQL Server 中有一个表,它具有以下特征:
- 将包含大约 120 万条记录。
- first 为空,将批量插入多次(准确地说是 64 次),20-100k 条记录/条
- 数据不会被更新或删除,只是被查询
- 并发查询数多,每次查询只返回一条记录
- 与ID无关(因为记录没有更新或删除)
- 查询的关键是两个字段,PROVINCE_ID 和 CANDIDATE_NUMBER(在整个表中唯一)
我正在考虑在 ID 列上创建聚集索引,并在 (PROVINCE_ID,CANDIDATE_NUMBER) 中创建非聚集索引。会是最好的选择吗?你能给我另一个建议吗?请解释我为什么要这样做?
非常感谢!
【问题讨论】:
-
表中还有多少其他字段?查询很可能只读取其中的一部分,还是全部读取?
-
@Tommi: 大概是其他10个字段,比如名字,姓氏,point1,2...6,总点数,所有的都是一样的@Mitch Wheat:我没有认为 54% 是一个糟糕的比率。每当一个答案解决了我的问题时,我都会立即接受。如果没有,我为什么要这样做?请查看我的问题列表
-
通常问题的质量或不切实际的期望是因素。我认为 54% 的 99 个问题非常低。例如,您最初在这个问题中遗漏了一些明显需要的信息。
-
@Andrew Barber 是对的。如果你问了 100 个问题,但只有一半得到满意的答案,那么问题不在于其他人 :)
标签: sql-server database-design index